При каких обстоятельствах я должен перенаправить клиента на более точный URI - PullRequest
0 голосов
/ 10 сентября 2011

У нас есть веб-сервис RESTFul, который возвращает список лиц.

/ person / list

Однако бизнес хочет возвращать только «активных» людей.то есть лиц, созданных после 2009 года.

Я предлагаю перенаправить (307?) / person / list в / person / list? creationAfter = 2009, поскольку это более точное представление ресурса.Имеет ли это смысл?Если нет, то почему?

Ответы [ 2 ]

1 голос
/ 11 сентября 2011

Что не так с использованием / person / list / active? Вы знаете, что active создан после 2009 года, но определение может измениться.

1 голос
/ 10 сентября 2011

По моему мнению, URL / персона / список должен возвращать нефильтрованный список.Чтобы получить отфильтрованный список, вы должны явно указать createAfter = 2009.

Я говорю об этом в будущем.Что если у вас есть приложение, которое на самом деле хочет всех пользователей?Что, если у вас есть куча старого кода, зависящего от / person / list, магически перенаправляющего на отфильтрованную версию, и вам по какой-то причине нужно изменить URL / person / list, чтобы фактически быть нефильтрованной версией?Тогда ваш старый код просто сломался, потому что он потянет всех пользователей.

Я бы выбрал один из двух подходов:

1) Не перенаправлять.Просто / лицо / список молча подразумевают только активных людей.В этой ситуации, чтобы получить неактивного, вам нужно будет на самом деле запросить / person / list? All или / person / list? Включая Inactive или что-то еще (надеюсь, вы получите точку - вы должны явно запросить отключенных)

2) На самом деле используйте URL-адрес с? CreateAfter = 2009 в своих приложениях.

Я бы, вероятно, выбрал первый вариант.Это позволяет вам сохранять логику того, что такое активный человек, а не в вашем веб-сервисе, а не в приложениях, и это означает, что значение URL никогда не изменится (просто / person / list будет рассматриваться как список толькоактивные лица).

...