2016-11-15 2 views
0

JSON Хотите понять хорошую практику для разработки REST APIостальное апи ресурс обновления с частичной

Если ресурс необходимо обновить частично, что лучше? PUT или PATCH

Пожалуйста, советы, если я правильно понимаю

POST - упорствовать Заказчику 2 адреса

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"1234"}, 
{"id":"2","zip":"12345"}] 
} 

Теперь обновления почтовый индекс для адреса идентификатору 1

PUT - полный JSON является обязательным для отправки в REST API?

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"9876"}, 
{"id":"2","zip":"12345"}] 
} 

PATCH - частичное (или полное) JSON может быть отправлен в REST API?

{"custId":"1", "name":"Rocky", 
"address":[{"id":"1","zip":"9876"}] 
} 

ответ

1

Ваше понимание кажется в основном правильным, но ваш пример подсказывает возможную проблему в вашем мышлении. Документ, о котором вы говорите, на самом деле является клиентом с набором адресов. Каждый адрес можно рассматривать как отдельный документ, поскольку он имеет идентификатор. Поэтому ваш api должен позволить вам обновлять один адрес без обновления клиента. Что вам не хватает в вашем примере, это URI для ресурсов. Итак, у вас должно быть что-то вроде customer/1, чтобы идентифицировать клиента и, возможно, что-то вроде customer/1/address/1, чтобы определить адрес.

+0

спасибо, да, я забыл упомянуть. Но у меня есть другой вопрос: если я хочу обновить только одно свойство (lastN) клиента {id: 1, firstN: fb, lastN: ln, dept: 201, region: NA}, тогда следует отправить только {id : 1, lastN: newLn} с PATCH или {id: 1, firstN: fb, lastN: newLn, dept: 201, region: NA} с PUT –

Смежные вопросы