何时在REST响应中放置资源的URL?

时间:2013-05-11 09:05:10

标签: java spring java-ee

我看到一些Web服务使用指向另一个资源的链接进行响应,而不是在请求的资源中内联资源数据。这种方法何时首选?或者我在回复中仅使用JSON?没有创建到其他资源的链接......

{
    ...
    user: "api/user/6"
    ...

}

2 个答案:

答案 0 :(得分:0)

REST响应正文中提供的URL或标头通常是参考URL。假设您通过调用REST服务创建实体,并且您想知道如何在以后检索该实体详细信息。因此,当通常创建实体时,它们与唯一ID相关联。此ID通常用于引用URL以获取该实体。这是一个例子:

CREATE

    /api/entity/ : POST to create an entity

RESPONSE : 200 OK response body/header
/api/entity/1

其中1是为该实体生成的id,所以现在您可以执行GET来检索新创建的实体的完整详细信息

GET : /api/entity/1
RESPONSE: details of the entity.

答案 1 :(得分:0)

加上@Juned Ahsan回答,
在大多数情况下,REST服务上POST操作的响应代码应为 201 Created 在这种情况下,根据HTTP 1.1 protocol

  

新创建的资源可以通过响应实体中返回的URI引用,其中包含Location头字段给出的资源的最具体URI。