Под дизайном RESTful я предполагаю, что вы имеете в виду веб-сервисы RESTful, поскольку архитектура на основе REST имеет гораздо более широкий смысл, чем эта.
Главное, что следует учитывать, это то, что архитектуры на основе REST основаны на протоколе HTTP практически во всех случаях. Поскольку HTTP определяет набор методов, иногда эти методы используются для создания так называемых веб-служб RESTful.
Но веб-сервисы RESTful не следуют никаким конкретным стандартам (в отличие от SOAP). Обычно используется:
- GET - для извлечения существующих предметов
- POST - для создания новых предметов
- PUT - для обновления существующих элементов
- УДАЛИТЬ - для удаления существующих элементов
Создание, чтение, обновление и удаление (CRUD) являются основными функциями любого постоянного хранилища.
Легко видеть, что в обычных веб-сервисах RESTful каждый HTTP-метод используется для соответствия одной из основных функций, но суть в том, что так быть не должно.
Есть и другие вещи, которые необходимо учитывать, URL-сопоставление - это одно из них (поскольку это вопрос вашего вопроса), безопасность - это другое. POST-запросы отправляют содержимое запроса в теле HTTP (которое может быть зашифровано), но GET-запросы отправляют его в URL-адресе, видимом для всех.
Если кто-то хочет разработать безопасный (зашифрованный) веб-сервис RESTful, он может сделать все запросы HTTPS POST, а затем указать в запросе, какую из операций CRUD нужно выполнить и на каких ресурсах.
Можно также расширить концепцию CRUD в более широком диапазоне, фактически, практически в каждом приложении.
Помните, что CRUD - это всего лишь четыре основные операции, на которых могут основываться все другие действия. Там нет никакого стандарта, которому вы должны следовать, вы можете указать свой собственный протокол, в соответствии с тем, что имеет смысл в вашем контексте, и учитывая все соответствующие соображения (безопасность, URL и т. Д.)
В частности, в отношении вашего вопроса у вас могут быть свои собственные действия, например show_by_x, show_by_y и т. Д. Полиция REST не собирается арестовывать вас: -)