2016-12-13 4 views
0

Может быть, немой вопрос, но как обновить содержимое типизированной карты collection association объекта с Spring Data Rest с использованием запросов POST/PUT?Как отправить POST/PUT на ассоциацию коллекции <String, Entity>

Я знаю, как POST/PUT на список или набор ассоциаций с помощью Content-Type: text/uri-list, но я не с ключ/значение Карта <>

EDIT

Я попытался отправить Ressource URI на тело запроса PUT с Content-Type: text/uri-list на конечной точке ассоциации. Я не давал ошибку, но она заменила все предыдущие содержимое карты <> по этим: (? Побочный эффект)

{ 
    self: { ENTITY content} 
} 

Так что, кажется, поддерживается. Он назвал ключ self. Я не знаю, как указать ключ.

+0

Ничего, потому что я не знаю, что установить на теле HTTP. –

+0

Является ли отношение двунаправленным и имеет ли связанный тип репозиторий, экспортированный как ресурс Rest? Если это так, то другой подход заключается в отправке в конечную точку репозитория для связанного типа. –

+0

Мой вопрос не является специфическим для прецедента, но «как это сделать» в весенних данных. Я пытался с экспортированным или связанным репозиторием связанного объекта. Ассоциация не была двунаправленной. Я сделал простой демонстрационный проект в [JIRA issue] (https://jira.spring.io/browse/DATAREST-960?jql=project%20%3D%20DATAREST), я публикую этот номер –

ответ

0
@WebService 
@Path("/test") 
public class TestResource { 


    @GET 
    @Produces(APPLICATION_JSON) 
    public HashMap<String, String> findAll() { 

     HashMap<String, String> test = new HashMap<>(); 
     test.put("key1", "value1"); 
     test.put("key2", "value2"); 
     return test; 
    } 

Это производит JSON на переднем конце:

{"key2":"value2","key1":"value1"} 

Однако это делает тип контента использование приложения/JSON, который не может быть то, что вы после этого?

+1

Жаль, что это не отвечает мой вопрос. Я использую Spring Data Rest, который автоматически предоставляет классы класса Entity Domain в ресурсы для отдыха. Ресурс GET работает хорошо, но я не знаю, как POST или PUT на ассоциации Map <>. –

+0

Посмотрите на данные, которые вы получаете от get, затем просто отправляйте те же данные обратно! – David

+1

'Spring Data Rest' создает специальные субресурсы конечных точек в ассоциациях сущностей, которые позволяют вам публиковать списки ресурсов URI (PST) или PUT (HATEOAS). Это обычный способ делать вещи в «Spring Data Rest» для борьбы с ассоциациями. То, что я не знаю, относится к случаю, когда тип ассоциации является Java-картой. Мне нужно указать ключ, но я не знаю, как, если это возможно, и нормальный способ сделать это. –