Компания, в которой я работаю, начала создавать сервисы RESTful, при этом большая часть разработки была отдана на аутсорсинг.
Наш первый сервис предназначен для аутентификации пользователей. Когда пользователь вводит неправильное имя пользователя и пароль, браузер получает код состояния 200 и представление тела ответа:
{
"state": "FAILED",
"responseCode": 400,
"timestamp": 1310378271300,
"anies": [
{
"errorCode": "-6600",
"errorType": "MSG_ERR_EMPTY_ACCOUNT_API_KEY",
"translation": {
"lang": "en",
"value": "Provided login is empty"
},
"property":"apiKey"
},
{
"errorCode": "-6601",
"errorType": "MSG_ERR_EMPTY_ACCOUNT_API_PASSWORD",
"translation": {
"lang":"en",
"value":"Provided password is empty"
},
"property": "apiPassword"
}
]
}
Браузер взаимодействует с контроллером, который, в свою очередь, вызывает веб-сервис. У нас также будут клиенты, напрямую взаимодействующие с сервисами.
Представленное выше представление содержит состояние сбоя (400), внутренний код ошибки, чтобы клиент службы мог посмотреть, что это за ошибка на определенном языке, и перевод ошибки, который браузер будет использовать для отображения на экран. Атрибут «property» - это элемент / параметр формы, которому соответствует ошибка.
Мне кажется, это неправильно.
- Должен ли браузер получить код состояния 400, а затем посмотреть, почему произошел сбой?
- Должен ли быть атрибут для переведенного текста или имеет смысл иметь уже переведенный текст, если заголовок принятия - en, fr и т. Д.?
- Может ли кто-нибудь еще что-нибудь предложить?
Спасибо