Я работаю над созданием веб-сервиса RESTful. Я прочитал о принципах использования HTTP для каждого механизма, насколько это вам понадобится, и большую часть времени, например, при извлечении ресурсов, работает очень хорошо.
Но когда мне нужно, чтобы POST создала новую запись, в интересах ясности и надежности, независимо от того, что может делать клиент, я хочу предложить конкретные ошибки проверки, с которыми могла столкнуться новая запись. Кроме того, существуют определенные ошибки, где, скажем, данные для создания нового пользователя совершенно верны, но может быть сделан псевдоним или адрес электронной почты. Просто возвращая 409 Conflict
не достаточно подробно, какой из псевдонима или адрес электронной почты был взят.
Так что обойти это не наука о ракетах: запишите кучу конкретных кодов ошибок и верните объект с ошибками:
{ errors: [4, 8, 42] }
Это означает, что в случае неудачных запросов я не возвращаю ресурс или его ключ, как я могу ожидать от философии REST. Точно так же, когда я возвращаю много ресурсов, я должен каким-то образом их создать в массиве.
Итак, мой вопрос: буду ли я предоставлять хорошо организованный веб-сервис RESTful, если бы я стандартизовал конверт для использования для каждого запроса, например, чтобы всегда существовал такой объект, как { errors, isSuccessful, content }
?
Я ранее использовал веб-службы в стиле RPC, которые использовали это, но я не хочу делать что-то "почти REST". Если будет какой-то момент для REST, я бы хотел быть как можно лучше.
Если ответ "hell no", который, я думаю, может быть, я хотел бы услышать, правильно ли он решает проблему валидации, и какая хорошая ссылка для такого рода решения проблемы может быть, потому что большинство руководства, которые я нашел, только подробно описаны в простых случаях.