我正在寻找有关宁静的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);
答案 0 :(得分:1)
第一个选择是更清洁。 REST API中的所有URI都应该是资源,因此URI中不需要“资源”,我会说“列表”不是,因为这只是表示资源集合的一种方式。
此外,如果您要在C#中实现REST服务,根据示例,我强烈建议您使用ASP.NET Web API。它提供了一种非常干净,强大且简单的实现REST服务的方法。
Restful Web Services是一本很棒的书,它提供了有关宁静的Web服务设计的基本最佳实践,并且也有很好的例子。您还可以查看Richardson Maturity Model,它根据成熟度来描述服务的安宁性。要使服务变得安静,它必须处于最高成熟度水平,但这些水平为正确指导步骤提供了良好的指导。