2016-11-29 3 views
0

Что лучше всего подходит для получения последнего добавленного элемента (скажем, мы знаем, что из-за поля created_at на ресурсе).RESTful API - Получить последний элемент

Если это будет призывом к получить все с максимальными результатами 1 как:

GET ../rest/v1/article?page=0&size=1&order=created_at,desc 

и возвращает массив из одного элемента

или, может быть «специальный» называют как:

GET ../rest/v1/article/last 

и будет возвращать элемент.

Я ищу лучшую практику, если есть один образец для этого.

Спасибо!

ответ

1

Я не эксперт RESTful, но, на мой взгляд, первое решение кажется лучшим.

Второй вариант более практичен, но маршруты часто связаны с ресурсами, добавление «последнего», особенно предшествующего «/», кажется мне странным.

Кроме того, пользователи API обычно используют параметры сортировки, и как насчет пользователей, которым нужны 10 последних элементов?

Если вы добавили что-то после ../rest/v1/article, это должен быть идентификатор для одного конкретного элемента, под-ресурса или для действий, которые находятся за пределами CRUD, как ../rest/v1/article/:id/subscription.

+0

Я дополняю этот ответ. Я также хотел бы выбрать параметр. Когда вы рисуете косую черту в конце имени ресурса, вы также должны знать, что вы разрабатываете новый ресурс. Ресурс - это * вещь *, и это делает пару с существительными не глаголами, а прилагательными. Это можно использовать как хорошее эмпирическое правило, когда вы сомневаетесь. – MaVVamaldo

0

Оба URL являются RESTful и идентифицируют ресурс. Конечно, первая вернет коллекцию, содержащую один элемент, а вторая вернет этот элемент напрямую.

первая форма будет автоматически поддерживаться, если вы поддерживаете пейджинг и сортировку вообще.

Пишет

или, может быть «специальный» называют

Я не вижу в этом как «или», это должно быть «и». вторая форма: факультативно, и это может быть полезно. Если у вас есть шаблон URL, как

GET ../rest/v1/article/{id} 

легко реализовать логику, которая может различать обычные идентификаторы, как, например, 123 или A567 из специальных идентификаторов, как «last`.

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