Resful стандарты веб-сервисов, лучшие практики

Я ищу лучшие практики по стандартам спокойного веб-сервиса. Одна из главных вещей, которые я хочу разобрать, это разделение сущностей в URL. Какое право делать, группировать методы по одному URL или отдельно по имени объекта?

[WebGet(UriTemplate = "countries/{id}")]
Country GetCountry(int id);

[WebInvoke(UriTemplate = "countries/{id}", Method = "POST")]
Country CreateCountry(int id, Country country);
or 
[WebGet(UriTemplate = "resources/lists/countries/{id}")]
Country GetCountry(int id);

[WebInvoke(UriTemplate = "resources/lists/countries/{id}", Method = "POST")]
Country CreateCountry(int id, Country country);

1 ответ

Первый вариант чище. Все URI в REST API должны быть ресурсами, поэтому "ресурсы" не нужны в URI, и я бы сказал, что "списки" тоже не нужны, поскольку это просто способ представления коллекции ресурса.

Кроме того, если вы собираетесь реализовывать службы REST в C#, как показано в примере, я настоятельно рекомендую использовать ASP.NET Web API. Он обеспечивает очень чистый, мощный и простой способ реализации служб REST.

Restful Web Services - это отличная книга, в которой приведены базовые рекомендации по созданию спокойных веб-сервисов, а также приведены отличные примеры. Вы также можете проверить модель зрелости Ричардсона, которая описывает спокойствие обслуживания с точки зрения уровней зрелости. Чтобы услуга была спокойной, она должна быть на верхнем уровне зрелости, но уровни дают хорошее руководство для принятия шагов в правильном направлении.

Другие вопросы по тегам