繁体   English   中英

非CRUD API的RESTful设计

[英]RESTful Design for non CRUD APIs

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

假设我想以RESTful的方式表示在基类库中找到的典型API(一些表示Singleton模式/ Factory模式等),我可以找到有关大多数教程和有关简单POST,PUT,GET,DELETE方法的信息。创建,读取,更新不足够。

是否有一套标准的准则,以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>"

等等

我应该遵守哪些设计准则?

我希望您将Odata v4添加到其中,然后创建服务,因为我在过去8个月中一直在处理相同的情况。 优点 1.无需进行很多搜索查询功能。 2.有可用的Odata客户端,它可以像Wcf一样基于元数据生成客户端代码。 所以这也是一个很大的优势。 3.不要使用put post get API的基本名称约定,而应使用函数名称来描述函数的实际作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM