Closed pinarersoy closed 7 years ago
Content
diye bir modelimizin olaması lazım. (Hali hazırda var) Bu veritabanındaki Content'i temsil ediyor olacak. Şurada var https://github.com/SWEZenith/Living-History-API/blob/master/src/main/java/com/zenith/livinghistory/api/zenithlivinghistoryapi/dto/Content.java
Bu Content
'in Annotation'ları olacak. Bunu da Content
modelinin içinde private List<Annotations> annotations;
şeklinde tanımlamamız gerekecek.
Bu Content
ve Annotation
nesnelerinin birbirleriyle olan ilişkilerinin nasıl kurulacağını tam olarak ben de bilmiyorum. Fakat http://javasampleapproach.com/spring-framework/spring-data/mongodb-model-one-one-one-many-relationships-mongodb-embedded-documents-springboot burada çok güzel anlatılmış. Burdaki örnek Company
ve Products
üzerinden yapılmış. Bizdekinin aynısı. Orda şirketin ürünleri var onu modelliyor, biz ise içeriğin annotationlarını modelleyeceğiz.
İşin sonunda yazılacak Controller şunun gibi olmalı:
@RequestMapping(method = RequestMethod.GET, value = "/{id}")
public List<Annotation> GetAnnotationsByContentId(@PathVariable("id") String id) {
Content content = contentRepository.findOne(id);
List<Annotations> annotations = content.annotations;
return annotations;
}
Content structure is changed as the following sample content:
{
"story_items": [
{
"type": "text",
"content": "Bebek was a popular residential district under Ottoman rule, and continues to be so today. Its population reflected the diverse society of the time, which is still visible in Bebek's historic architecture and contemporary constituencies."
},
{
"type": "image" ,
"content": "https://tr.pinterest.com/pin/375909900139360239/"
}
],
"title" : "Once upon a time... Bebek",
"tags" : ["Bebek", "seaview", "historic"],
"day" : 10,
"month" : 10,
"year" : 1960,
"location": {
"longitude": 29.0422726,
"latitude": 41.0763304,
"name" : "Bebek in 1950s"
},
"creator": "http://living-history.gkc.host/api/v1/users/pinar"
}
An endpoint will be added under AnnotationController, which will provide all annotations made over given content.