宁静的Web服务标准,最佳实践

时间:2012-10-02 18:47:10

标签: c# wcf rest web-standards

我正在寻找有关宁静的Web服务标准的最佳实践。我想要解决的主要问题之一是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 个答案:

答案 0 :(得分:1)

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

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

Restful Web Services是一本很棒的书,它提供了有关宁静的Web服务设计的基本最佳实践,并且也有很好的例子。您还可以查看Richardson Maturity Model,它根据成熟度来描述服务的安宁性。要使服务变得安静,它必须处于最高成熟度水平,但这些水平为正确指导步骤提供了良好的指导。