Преимущества REST URI по URI формата запроса?

Все,

Для нового проекта, который мы начали с.NET, мы хотели реализовать чистый REST. Поэтому мы выбрали.NET Web API, который был выпущен как часть.NET Framework 4.5 (вместо WCF) с учетом того, что он обеспечивает чистый характер REST. Но по мере того, как мы исследовали больше, основываясь на наших требованиях, мы поняли, что у него нет поддержки шаблонов URI, которая предоставляет REST, такие как форматы URL. мы все еще были в порядке, так как мы не очень плохо относились к WebAPI, имеющему тип строки запроса.

Когда мы запустили новую команду, они начали принуждать к тому, что им нужны форматы URL-адресов REST только в том случае, если это стандартная норма и нравится.

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

Итак, мне интересно узнать, что делает архитектура REST из коробки? Кроме того, URI запроса с запросом на выбор не подходит для подхода REST?

REST URI: http://myapplicationdomain.com/apps/appId

URI запроса: http://myapplicationdomain.com/GetAps/appId= {appId}

Заранее спасибо.

2 ответа

REST - это не только формат URL, но и REST не ограничивает использование параметров.

Одной частью философии REST является определение ресурсов, поэтому ваш ресурс имеет URL-адрес, а HTTP-глаголы (Get, Post, Delete, Put и т.д.) Определяют операции на этом ресурсе. Вы все равно можете использовать параметры, например

http://myappfomain.com/product/?page=1&pageSize=10

Это запрос GET к списку продуктов (поскольку идентификатор не указан), а критерии поискового вызова/сортировки указаны в строке запроса. Это совершенно правильно.

Или

http://myappdomain.com/product/123/?format=json

Здесь вы получаете доступ к продукту с идентификатором od 123, но попросите его вернуть его как JSON. Это тоже прекрасно.

С этой точки зрения логичнее, что ресурс имеет свой собственный URL. Параметры могут добавить некоторые особенности.

Посмотрите на это следующим образом: URI определяет объект HTTP Verb определяет операцию (что делать) Параметры запроса предоставляют некоторые особенности (как это сделать)

Надеюсь, поможет.


REST (см. Wiki Репрезентативная передача состояния) "стиль" URI существует по какой-то причине. Выдержка из wiki:

<span>Равномерный интерфейс</span> ... <span>Идентификация ресурсов</span> Индивидуальные ресурсы идентифицируются в запросах, например, используя URI в веб-системах REST.

<span>Манипулирование ресурсами через эти представления</span> Когда клиент имеет представление ресурса,... у него достаточно информации для изменения или удаления ресурса на сервере...

Я использовал эти цитаты как приятное объяснение тому, что стиль URI REST на самом деле касается идентификации ресурсов. Мы можем иметь

1) таблицу в БД и 2) столбец идентификатора, который позволяет 3) УКАЗАТЬ или УДАЛИТЬ запись.

URI в REST делает то же самое:

1) Определите тип ресурса (сущность/таблица) 2) Определите идентификатор ресурса 3) установить операцию

HTTP Method URI Operation
GET \ResourceType\ResourceId SELECT, READ
POST \ResourceType INSERT, Add, create new
PUT \ResourceType\ResourceId UPDATE the record with ResourceID
DELETE \ResourceType\ResourceId DELETE that record

Итак, как мы видим, стиль URI REST имеет смысл в полном контексте управления ресурсами

licensed under cc by-sa 3.0 with attribution.