在RESTful CRUD API中处理ID
我正在设计一个创建/读取/更新/删除公共web API端点,使用HTTP上的RESTful模式和JSON有效负载,我想知道一个非常常见的设计问题,但我发现很难找到相关指南 让我们只关注API的“读取”和“更新”部分。当涉及到处理ID时,我对当前“适当的”REST最佳实践有点困惑。我的意思是: 通过HTTP GET“读取”员工返回一个或多个“小部件”JSON对象(例如,我有一种方法可以检索满足特定条件的所有小部件)。每个小部件对象都有一个作为GUID的ID字段 我看到了“更新小部件”端点的几个设计选项:在RESTful CRUD API中处理ID,rest,api,restful-architecture,api-design,restful-url,Rest,Api,Restful Architecture,Api Design,Restful Url,我正在设计一个创建/读取/更新/删除公共web API端点,使用HTTP上的RESTful模式和JSON有效负载,我想知道一个非常常见的设计问题,但我发现很难找到相关指南 让我们只关注API的“读取”和“更新”部分。当涉及到处理ID时,我对当前“适当的”REST最佳实践有点困惑。我的意思是: 通过HTTP GET“读取”员工返回一个或多个“小部件”JSON对象(例如,我有一种方法可以检索满足特定条件的所有小部件)。每个小部件对象都有一个作为GUID的ID字段 我看到了“更新小部件”端点的几个设计
那么什么是“RESTfully correct”/“最佳实践”方法呢?(对于使用我的公共API端点的开发人员来说,这是最熟悉、最容易混淆的方法)。还有其他我没有想到的设计选项(或设计注意事项)吗?如果ID是强制性的,您可以公开它。另一种方法是,在实体中可以有一个唯一的字段。无需传递ID,也可以创建包含唯一字段的DTO。在您的例子中,{widget id}是唯一的,并且id始终是自动生成的int id。使用POST,这是公共API的最佳方法 如果您需要对Widget执行多个操作,请使用“Widget”(例如:site.com/Widget)创建4个不同的端点,它将get、post、put以及delete定义为不同的方法。这意味着单个API将根据其调用的不同方法而发挥不同的作用