RESTful API ресурсная архитектура и синтаксис;Я делаю это правильно? - PullRequest
0 голосов
/ 14 марта 2011

Я работаю над реализацией архитектуры ресурсов RESTful API в моей микро-фреймворке.Я моделирую свои пути к ресурсам параллельно с иерархиями объектов, используя преимущества необычной функциональности маршрутизации, которую я недавно разработал.(О, это странно!)

Синтаксис URI, который я использую:

'http:// www.site.com / resource [ ; key1 = param1 [ & key2 = param2 ] ]'

Это позволило бы использовать такие URI как:

'http://www.site.com/user;id=123/article;id=456'

.что-то вроде (как только я включаю эту функцию в маршрутизатор):

$user->getByParams('id=123')->article->getByParams('id=456');

Итак, дополнительные примеры:

'GET /user;id=123 GET'
    # read User object data matching id=123

'GET /user;id=123/article;id=456'
    # read Article object data matching id=456
    # belonging to User object matching id=123

'GET /user;name=john&age=20/article;title=hello%20world'
    # read Article object(s) data matching title='hello world'
    # belonging to User object(s) matching name='john' and age=20

Проблема, с которой я столкнулся, связана с последним, сопоставляя несколько результатовпо данным запроса (в SQL LIKE). Какой безопасный символ для обозначения подстановочного знака?Звездочка (*) появляется здесь в списке зарезервированных под разделителей http://labs.apache.org/webarch/uri/rfc/rfc3986.html#reserved,, поэтому она останется незашифрованной.Возможно, было бы проще использовать% 25 (%)

Я понимаю, что эта проблема может зависеть от реализации, однако существуют ли какие-либо платформы, которые реализуют архитектуру ресурсов RESTful API, аналогичную этой, на которую я мог бы сослатьсядля идей?

Кроме того, я иду против зерна полностью здесь?

1 Ответ

1 голос
/ 14 марта 2011

В настоящее время лучшим ресурсом по созданию шаблонов URI с параметрами является здесь .

Сказав это, вы действительно должны избегать размышлений о дизайне URI при попытке сделать дизайн ресурса. Я пытаюсь проектировать ресурсы, рисуя блоки, называя их, а затем рисуя стрелки, чтобы представить ссылки, которые связывают ресурсы. Это похоже на способ разработки веб-сайта.

Затем, как только ваши ресурсы и ссылки будут идентифицированы, вы можете создать любую схему URI, наиболее простую для анализа вашей серверной платформой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...