HTTP REST如何在最终URL为';不知道

HTTP REST如何在最终URL为';不知道,http,rest,Http,Rest,我正在指定一个rest系统,其中包含可以查看、创建、编辑或删除的资源。我试图尊重rest和http方法的语义 如果资源由标识,我可以使用以下方法进行管理: -PUT创建或更新此资源 -删除删除此资源 -GET返回此资源 但是如果您需要创建一个新的资源,而您还不知道oid,那么如何继续?当您向数据库添加对象并且主键由数据库自动生成时,这种情况非常常见。在我的例子中,我的后端是一个数据库 我考虑了一个带有ressource的解决方案,它返回下一个空闲oid并增加其值。此资源将仅响应POST请求。使用

我正在指定一个rest系统,其中包含可以查看、创建、编辑或删除的资源。我试图尊重rest和http方法的语义

如果资源由标识,我可以使用以下方法进行管理: -PUT创建或更新此资源 -删除删除此资源 -GET返回此资源

但是如果您需要创建一个新的资源,而您还不知道oid,那么如何继续?当您向数据库添加对象并且主键由数据库自动生成时,这种情况非常常见。在我的例子中,我的后端是一个数据库

我考虑了一个带有ressource的解决方案,它返回下一个空闲oid并增加其值。此资源将仅响应POST请求。使用返回的oid,我可以向目标URL发送PUT请求

另一个解决方案是向发送POST请求。此请求将使用生成的oid创建资源并返回oid

先前解决方案的一个变体是向发送POST请求

第三种解决方案是我喜欢的。但是使用URL作为服务是否符合HTTP/REST

欢迎发表每一条评论

问候,,
米卡埃尔

大会是一个

然后,您应该返回创建的状态代码201,并将响应的位置头设置为指向新创建的资源

我试图找到一些链接来支持我自己

编辑:如果愿意,您也可以选择返回新创建的资源,但是设置位置头仍然是一个好主意

尝试以下链接,尽管很难看到树木中的树木:


我个人建议获得RESTful Web服务食谱,因为它解释事情非常简单和容易。

此外,不要在URI中添加动词,如
http://mydomain.org/create_object
-您的URI应该表示一个名词,如编辑表单,而不是表示“在此处发送数据以执行此操作”的动词。对于动词,请选择适当的HTTP方法。[]