2015-06-13 2 views
1

Интересно, что говорят хорошие методы создания REST API. Должен или нет я создаю URI, который позволит получить, например, несколько конкретных пользователей?Что говорит хорошая практика о ресурсе GET

Например, я имею в виду:

/usermanagement/users/{j_goldman,wafik,morder} 

И это URI будет возвращается 3 объектов пользователей для j_goldman, Вафиком и Morder.

ответ

0

Вы можете сделать это, но это не будет спокойным ИМХО. Если вам действительно нужно это сделать, вы должны подумать о том, что ремоделирование ваших вариантов ресурсов говорит, что все три пользователя, которых вы хотите получить, принадлежат к определенной группе с идентификатором 111. Затем вы можете сделать что-то вроде/groups/111 GET. Если вы не можете, я думаю, вы должны придерживаться спокойного решения и использовать три вызова API для получения пользователей по отдельности.

+0

Интересно, когда кто-то хочет получить информацию от системы о нескольких конкретных пользователях или о других ресурсах. Кто-то может пожелать получить информацию о, например, 2, 5 или 10 пользователей, это не всегда та самая группа пользователей. –

+0

Вы можете легко смоделировать этот запрос на групповом ресурсе, чтобы члены определялись самим пользователем API. – hspandher

+0

Upvote, если вы найдете мой ответ полезным – hspandher

0

Что вы делаете, это поиск определенного набора пользователей. С параметром запроса в вашем URL-адресе вы можете достичь этого.

Для возврата одного пользователя (идентификатор 5):

/usermanagement/пользователей/5

Для возвращения всех пользователей:

/usermanagement/пользователей

Чтобы вернуть набор пользователей на основе поиска:

/usermanagement/пользователей? Имя пользователя =

Таким образом, ваш API открыт для поиска по указанным критериям, которые также могут быть расширены.

Скажем, вы хотите произвести поиск по местоположению:

/usermanagement/пользователей местоположение =

Скажем, вы хотите, чтобы объединить эти:

/usermanagement/пользователей ?UserName = {критерии} & место = {критерии}

Вы также можете выставить сам поиск конечной точки:

/usermanagement/поиск

Вы можете найти другие варианты здесь также:

RESTful URL design for search

+0

В моей системе пользователь идентифицируется о имени пользователя (возможно, это неправильно, но давайте оставим его в покое). Я не говорю о поиске. Меня интересует случай, когда кто-то хочет получить информацию от системы о нескольких конкретных пользователях или о других ресурсах. –

+0

Но что определяет этих конкретных пользователей? Вы должны сказать API что-то о них, чтобы вернуть их. ИМО, вы определяете критерии поиска. – JamesB

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