非CRUD API的RESTful设计

时间:2014-08-26 07:42:56

标签: c# rest

我一直在努力寻找一个教程或网站来解释设计api的最佳实践,该API不仅代表典型的Create-Read-Update-Delete中的资源。

假设我想以RESTful方式表示在基类库中找到的典型API(一些代表Singleton模式/工厂模式等),我可以找到关于简单POST,PUT,GET,DELETE的大部分教程和信息表示Create,Read,Update的方法是不够的。

是否有一套标准的指南用于以RESTful方式“恢复”更复杂的API和/或标准设计模式?

作为一个例子,我不清楚为文件实例提供MOVE和COPY操作的最佳方法,并且有很多(所以!)方法可以实现这一点;

POST http://www.api.com/api/file/<fileidentifier>/COPYTO/<newfileidentifier>

POST http://www.api.com/api/file?directory=<dir>&filename=<filename>
BODY { operation: "copy", newDirectory: "<$newdir>", newFilename: "<$newfilename>"

等等

我应该遵守哪些设计指南?

1 个答案:

答案 0 :(得分:0)

我希望你将Odata v4加入其中然后创建服务,因为我正在处理过去8个月的相同场景。 的 1.无需进行许多搜索查询功能。 2.有Odata客户端可以根据元数据生成客户端代码,如Wcf所示。 所以这也是一个很大的优势。 3.而不是使用put post获取API的基本名称约定使用您的函数名称,这些函数名称更能描述函数实际执行的操作。