设计一对一的rest服务

设计一对一的rest服务,rest,architecture,restful-architecture,spring-data-rest,Rest,Architecture,Restful Architecture,Spring Data Rest,场景:我们正在创建/设计一个REST服务来帮助我们配置一个系统(以及它的网络等),但是我们在设计这个API时遇到了一些问题。我们希望使用REST调用配置系统的主机名/ 挑战:因为大多数API和设计指南都与实体列表相关,而不仅仅是一个实体,所以我无法决定rest API应该是什么样子 目前我们正在考虑使用类似于: GET/system/0 PUT/system/0{..} 问题:只有一个系统实体,因此使用0来识别它感觉不好,因为只有一个系统实体 有关于如何实现这一点的REST指南吗?实际上,R

场景:我们正在创建/设计一个REST服务来帮助我们配置一个系统(以及它的网络等),但是我们在设计这个API时遇到了一些问题。我们希望使用REST调用配置系统的主机名/

挑战:因为大多数API和设计指南都与实体列表相关,而不仅仅是一个实体,所以我无法决定rest API应该是什么样子

目前我们正在考虑使用类似于:

  • GET/system/0
  • PUT/system/0{..}
问题:只有一个系统实体,因此使用
0
来识别它感觉不好,因为只有一个系统实体


有关于如何实现这一点的REST指南吗?

实际上,REST并没有为URL强制执行特定的格式,您甚至可以有一个URL,如
/569284d7-1b59-4343-92d4-90e8753bcbd7
,这没问题。在REST中,服务器引导客户机完成状态更改,而不是让客户机知道要访问哪些URL

大多数web API都是以CRUD风格创建的,具有资源层次结构,如示例
/system/0
/system/1
,因为它更容易理解和实现(可能并不总是RESTful的,这取决于客户端与URL的耦合程度,但它满足了大多数需求,所以人们选择这样做)

所以我的建议是保持简单,不要过度思考。使用
/system/0
很好,即使现在只有一个系统


就我的2美分

请格式化您的帖子谢谢分享。自从我们开始使用SpringDataJPA rest框架,该框架提供类似crud的rest服务以来,我们发现它们默认使用完全相同的url语义。。。这可能就是我们要走的路。