Джерси (REST) ​​выдает исключение и отображает ошибку HTTP или возвращает пользовательский код ошибки? - PullRequest
0 голосов
/ 24 октября 2011

По сути, я написал REST-сервис, и моя бизнес-логика требует от меня подтверждения ввода.Например, убедитесь, что формат номера телефона (###) ### - ####.Если это не так, он должен вернуть неверный номер телефона.Далее мне нужно записать все действия сервиса.Поэтому, когда клиент запрашивает систему, он может узнать, что было последним действием.Т.е.:

ДЕЙСТВИЕ: ДОБАВИТЬ - ДЕЙСТВИЕ УСПЕХА: ДОБАВИТЬ - НЕДЕЙСТВИТЕЛЬНЫЙ НОМЕР ТЕЛЕФОНА

Так что теперь я думаю, нужно ли мне создавать собственные коды ошибок или просто использовать стандартные HTTP-коды итакже запишите их внутри «журнала»

Довольно плохо знаком с REST-стилем, поэтому, если моя логика отключена, дайте мне знать ...

Так что мне ...

public void callPerson(String phone)
{
    try
      validate(phoneNumber)
      call person
    catch
        throw Invalid Phone Number
    finally
       record status to DB
}

или

public myStatusCode callPerson(String phone)
{
    try
      validate(phoneNumber)
      call person
    catch
        return myStatusCode
    finally
       record status to DB

}

На самом деле я также хочу убедиться, что статус записывается, а также в противном случае было бы нехорошо, если, скажем, действие сработало, а обновление статуса - нет.Таким образом, обновление статуса действительно должно быть частью «транзакции»

Также следует помнить, что для этой службы REST некоторые действия должны связываться с более старой службой, ориентированной на сообщения, где ответ и код ошибкив ответном сообщении XML ...

Есть предложения?Спасибо

1 Ответ

0 голосов
/ 25 октября 2011

Я бы порекомендовал код состояния HTTP 412 (Precondition Failed) и сообщение String для ошибки.

...