2015-10-15 9 views
1

Мне нужно написать API-интерфейсы Rest, чтобы выполнить операцию CRUD на объекте say Employee.Тип носителя в API REST для проверки

class Employee { 

    String name; 

    String id; 

} 

- там может быть больше полей, для примера мы рассматриваем только 2.

На момент создания и обновления может быть много проверки, как

  • имя сотрудника и идентификатор не может быть пустым.

  • Название не может содержать более 40 символов.

  • id имеет только алфавиты.

Во время создания для каждой проверки я должен дать правильное сообщение пользователю. Если при одной операции создания есть несколько сбоев. Я должен показать все сообщение пользователю.

Я ищу хорошее решение для этого.

+0

Какой язык? что это имеет отношение к медиа-типам? –

+0

Тип носителя означает возврат объекта API API. Тип контента - JSON, а язык разработки - Java. Мы создаем и обновляем объект Emplyee, он возвращает нам json вновь созданного объекта. –

+0

* Тип носителя означает возврат объекта API * нет, тип носителя - это идентификатор двух частей для форматов файлов в Интернете. Как 'application/json' или' text/html' –

ответ

0

Поскольку вы просили дизайн, я не буду брать время, чтобы добавить код к этому, но идея должна быть чем-то вроде этого:

  • сделать структуру данных, которая может содержать ошибки. Предпочтительно HashMap для хранения пар ключ-значение
  • Для каждого параметра, который вы проверяете, выполните необходимую проверку. Если все в порядке, все хорошо. Если это некорректно, добавьте запись в HashMap, описывающую ошибку.
  • После проверки проверьте, есть ли у HashMap какие-либо записи. Если это так, есть ошибки, и вы не должны создавать пользователя, но возвращать ответ об ошибке. Если это не так, вы можете создать пользователя и вернуть ответ успеха.

Структура данных может выглядеть следующим образом (в JSON)

{ 
    "success": "no", 
    "error": "validation_failed", 
    "validation_errors": [ 
     {"name": "too long"}, 
     {"id": "invalid format, must be String"} 
    ] 
} 
+0

Спасибо Тиму, до сих пор это правильный дизайн, поскольку я думаю, что это неправильно. Я понимаю, о чем вы хотите думать. Будут ping вас, если у меня будет любой другой запрос в этом. Я ценю ваш быстрый и уместный ответ. –

+0

@sandeepgarg, что вы говорите, это хорошо или нет? –

+0

его очень хорошо, и я его использую. Благодарю. –

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