Обычно значения, которые клиент может или должен установить для определенных ресурсов, должны преподаваться сервером с помощью формоподобных представлений, таких как HTML Веб-формы , где имеется возможность соответствующего контроля элементы позволяют клиенту указывать правильные значения, которые сервер ожидает или поддерживает. В таком случае клиент не имеет никаких знаний о возможностях ресурса, кроме тех, которые сообщаются сервером напрямую.
В случае, если сервер сообщил клиенту, что определенное свойство поддерживает диапазон, скажем, от 0 до 100, и клиент пытается отправить значение меньше 0 или больше 100 или не числовое значение, I ' Я предпочитаю возвращать ошибку, указывающую на неправильное использование некоторых поддерживаемых элементов.
Относительно того, следует ли игнорировать определенные входные значения для определенных свойств или возвращать ошибку для свойств, которые не , которым учил сервер напрямую, он основан исключительно на выборе дизайна IMO, возвращать ли ошибку или просто игнорировать ее. Через POST полезная нагрузка обрабатывается в соответствии с собственной семантикой ресурса. Здесь лучшим советом будет указать на двоюродного брата, browsalbe Web, и спросить, как бы вы это сделали, и просто использовать ту же концепцию в архитектуре REST. Здесь принцип надежности мандаты:
Будьте консервативны в том, что вы делаете, будьте либеральными в том, что вы принимаете от других
Будьте консервативны в том, что вы посылаете, быть буквальным в том, что вы принимаете
Итак, я бы больше склонялся к игнорированию свойств, которые клиент не должен устанавливать, но был бы точным в том, что вы возвращаете клиенту. Однако, если клиент отправляет данные, которые предполагают некоторое знание внутренних ресурсов ресурса, но сервер не сообщает об этом, он нарушает принципы REST alltogeter и, таким образом, указывает на использование без RESTful.