我們使用Dropwizard/Jersey構建Web服務。資源有一個路徑,該方法有一個子路徑。當返回創建的響應(201)時,我們獲得的方法的路徑被預先添加到我們提供的位置。當返回狀態確定與一個位置(我知道設法),一切都很好,位置返回就像我們提供它。Javax響應在設置「狀態」創建位置標題路徑時預先設置方法路徑
我們如何返回一個不是我們方法位置的子路徑的位置?
在下面的例子: A到的 「http://本地主機/富/欄」(創建狀態)與位置響應的 「http://本地主機/富/酒吧/維布勒」(注意/foo/bar)
同時到達「http:// localhost/foo/baz」(ok狀態)響應的位置是「http:// localhost/wibble」,這正是我們想要的。
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;
import java.net.URI;
@Path("/foo")
public class FooResource {
@POST
@Path("/bar")
public Response bar() {
URI uriOfCreatedResource = URI.create("/wibble");
return Response.created(uriOfCreatedResource).build();
}
@POST
@Path("/baz")
public Response baz() {
URI uriOfCreatedResource = URI.create("/wibble");
return Response.ok().location(uriOfCreatedResource).build();
}
}
謝謝,我會嘗試。我們目前的解決方法是將狀態200與對象中的URL一起返回,該對象被序列化爲JSON。 –