2012-01-19 3 views
0

Допустим, у меня есть коллекция заявителей, которые могут быть доступны черезКак определить REST URI для ресурса?

/applicants 

заявитель может быть однозначно определены двумя различными способами: с помощью ССН или идентификационный номер.

Как я могу указать свой GET s для конкретного заявителя?

Обычно для уникальных идентификаторов я бы

/applicants/{id} 

, но в этом случае у меня есть два различных уникальных идентификаторов. Любые предложения по правильному обращению с этим.

кажется неправильным делать что-то вроде

/applicants/{id} 
/applicants/ssn/{ssn} 

ответ

3

Будучи уникальной и быть идентификатор два разных понятия. Идентификатор (т.е. id) будет более подходящим для идентификации и определения местонахождения ресурса с помощью URI, потому что:

  1. Вы являются (возможно) в полном контроле над идентификатором и его жизненного цикла.
  2. Хотя SSN может быть уникальным сегодня, правительство может изменить способ работы SSN завтра. Мне самому не нравится связывать внутренние идентификаторы с внешними источниками.

мне, ПЛА кажется, больше запрашиваемых свойством, чем идентификатор ресурса, например .:

# Searches for applicants with the provided ssn 
GET /applicants?ssn=000-00-0000 
+0

Считаете ли вы, что по-прежнему целесообразно возвращать 404 при использовании свойства запрашиваемых? – Mike

+0

Зависит от того, что обычно отвечает вашим// заявителям. Обычно я ожидаю, что он ответит чем-то вроде списка ресурсов приложения, которые соответствуют строке запроса, и если совпадений нет, просто пустой список. Я бы не ожидал, что он вернет 404 в этом случае. –

+0

Хорошо спасибо./Заявители обычно возвращают пустой список. Но в случае? Ssn = я думаю, что верну 404. Для? LastName = или других неидентичных идентификаторов, я думаю, я поеду с пустым списком. Спасибо за ввод. : D – Mike

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