带有复合DTO的静态API设计

汤姆

我得到以下一种对象的简单Restful设计:

GET /users
GET /users/123
POST /users/new
POST /users/1/edit (or PUT)
POST /users/1/delete (or DELETE)
...

遵循从一种对象类型到另一种对象的关系:

GET /user/123/company
GET /user/123/roles
POST /user/123/roles/new

混合DTO混合其中的多个对象呢?例如:

//Listing all users with their companies and primary role
GET /usersWithCompaniesAndPrimaryRoles 

//List all companies with users and roles count in each company
GET /companiesWithUsersAndRolesCount

在这种情况下,我的API链接看起来不太干净或变得不整洁?我想知道如何以一种Restful的方式来构造这些复合DTO的CRUD?请给我建议,或将我链接到可以学习该方法的地方?

非常感谢你。

el

Restful设计应具有此类API路径。相反,您应该使用GET /usersURI,并提供查询参数。例如:

GET /users?with_companies=yes

在Restful中,您不应将URI视为API命令。尝试将URI视为实体,可以获取,插入,更改和删除。没有其他“命令”的空间。

这就是为什么例如不应该有POST /users/newAPI路径的原因。
相反,只需发布​​到/users

另一种可能的RESTfull方法是使用POST创建“查询资源”对象,并返回“查询资源ID号”,该对象稍后将在单独的GET请求中使用。这样一来,您将创建保存的查询,这对于重新查询也同样有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有复合DTO的静态API设计

来自分类Dev

REST-如何设计带有复合键的URI?

来自分类Dev

REST-如何设计带有复合键的URI?

来自分类Dev

带有 CQRS 的 RESTful API 设计

来自分类Dev

带有Hibernate的复合键

来自分类Dev

具有复合键要求的表设计

来自分类Dev

带有嵌入式API密钥的静态API文档

来自分类Dev

带有嵌入式API密钥的静态API文档

来自分类Dev

带有设计的 ActiveAdmin

来自分类Dev

带有过滤和授权的RESTFul API端点设计

来自分类Dev

带有过滤和授权的RESTFul API端点设计

来自分类Dev

带有包含 char * 的结构类型参数的公共 API 设计

来自分类常见问题

StanfordNLP检测带有介词的复合实体

来自分类Dev

CloudKit复合查询(带有OR的查询)

来自分类Dev

Hive 删除带有复合主键的行

来自分类Dev

带有绑定的静态HubTile

来自分类Dev

带有静态内容的UIPageViewController

来自分类Dev

复合设计模式

来自分类Dev

复合设计模式定义

来自分类Dev

如何设计REST API以允许返回带有元数据的文件

来自分类Dev

带有自定义运算符的类似于fluent的api设计

来自分类Dev

设计带有`const`元素的C容器?

来自分类Dev

带有Mongoid的设计用户模型的数量

来自分类Dev

带有编辑文本的Android UI设计

来自分类Dev

带有材质设计滑动条的ActionBar

来自分类Dev

带有材料设计的 NativeScript-Vue

来自分类Dev

带有信号的 Qt 库设计

来自分类Dev

带有文字的 ul li 圆圈设计

来自分类Dev

带有转换器的复合JSF组件