Şu anda REST'de ve özellikle "iyi" Rest, hipermedia ve onunla birlikte gelen tüm iyi uygulamalarda beceriler edinmeye çalışıyorum.REST/Java'da iyi uygulamalar
Bunu yapmak için, seçimimden veri içeren bir prototip REST sunucusu geliştirmem ve daha sonra gelen gerçek bir projede kullanmak zorunda olduğum herşeyi hayata geçirmem istendi. Bu yüzden json kullanımı için Spring boot ve Jackson kullanarak bir sunucu yaptım.
Benim veri mimarisi bu yakındır: Ben kusursuz
{ "name":"Ariane V","country":"Europe","firstFlight":null,"GTO_Payload":1.0,"LEO_Payload":2.3,"weight":136.0 }
şey JSON nesnesi alabilir Ariane V Falcon 9, vb gibi (Boşluğu = D gibi) LaunchVehicle bir koleksiyona sahip Benim LaunchVehicle'ımın içinde, bazı Dizeleri ve Şamandıraları içeren bir nesne olacak bir "uzay ajansı" alanı eklemek istiyorum. Ancak, istemci bir LaunchVehicle aldığında, onun tam SpaceAgency nesnesini almasını istemiyorum, sadece adın adı. Buradan, uzay ajansının bağlantısını, alacağı yanıtta yer alan bir hiper medya bağlantısıyla takip edebilecekti.
Bunu nasıl yapabilirim? Şu anda yalnızca SpaceAgency nesnesi ve tüm alanları ile tam LaunchVehicle nesnesini istemciye gönderebiliyorum. İstediğimi yapan herhangi bir ek açıklama var mı? Teşekkürler;)
public class LaunchVehicle {
private String name;
private String country;
private Date firstFlight;
private Map<String, Float> characteristics;
private SpaceAgency spaceAgency;
@JsonCreator
constructor...
@JsonProperty(required=false)
getters and setters...
}
Çok teşekkür ederim, yeterince hassas veya anlaşılır değilse tereddüt etmeyin.
Tüm SpaceAgency öğesini serpiştirmekle ilgili sorun nedir ve yalnızca sizin beğendiğiniz kısmını kullanın. Performans sorunu? – pmartin8
Şu an için iyi bir uygulama arıyorum. Hipermediyi kullanmalıyım ve bu yüzden de "yol-yapma" hipergrafisini takip eden yükteki SpaceAgency nesnesine bağlantıyı koymayı düşünüyordum. Bu şekilde, tam nesneyi aynı istekte göndermem gerekmeyecek. Şu anda sadece bir prototip geliştiriyorum, bu yüzden performans sorunu yok, ama doğru yapmak zorundayım, bu performans endişeleri ile gerçekten büyük bir uygulama gibi. – ToyToy
Tamam o zaman çözümüme bir göz atın. SpaceAgency nesnesinde, JSON’unuzda bulunan tüm özellikleri göz ardı etmenize gerek yoktur. JSON deserializer'ınız unmapped özelliklerini unutmamalıdır. – pmartin8