非CRUD api的RESTful设计

本文关键字:RESTful 设计 api CRUD | 更新日期: 2023-09-27 18:19:22

我一直在试图找到一个教程或网站来解释设计api的最佳实践,而不仅仅是典型的创建-读取-更新-删除中的资源。

假设我想以RESTful的方式表示基类库中的典型api(其中一些表示单例模式/工厂模式等),我能找到的大多数教程和信息都是关于简单的POST, PUT, GET, DELETE方法来表示Create, Read, Update,

是否有一套标准的指导方针来"restify"更复杂的api和/或以RESTful方式的标准设计模式?

作为一个例子,我不清楚为文件实例提供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>"

等等

我应该遵循什么设计准则?

非CRUD api的RESTful设计

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