0

我正在寻找关于 RESTful Web 服务标准的最佳实践。我要整理的主要内容之一是 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);
4

1 回答 1

1

第一个选项更清洁。REST API 中的所有 URI 都应该是资源,因此 URI 中不需要“资源”,我会说“列表”也不是,因为这只是表示资源集合的一种方式。

此外,如果您要在 C# 中实现 REST 服务,按照示例,我强烈建议您使用ASP.NET Web API。它提供了一种非常干净、强大且简单的方式来实现 REST 服务。

Restful Web Services是一本很棒的书,它提供了有关 RESTful Web 服务设计的基本最佳实践,并且还有很好的示例。您还可以查看Richardson 成熟度模型,该模型根据成熟度级别描述了服务的安宁度。要使服务保持安静,它必须处于最高成熟度级别,但这些级别为朝着正确方向采取步骤提供了很好的指导。

于 2012-10-03T02:22:18.677 回答