Chúng tôi đang sử dụng Dropwizard/Jersey để xây dựng một dịch vụ web. Tài nguyên có đường dẫn và phương thức có đường dẫn con. Khi trả về được tạo (201), đường dẫn của phương thức mà chúng tôi đang nhận được được thêm vào vị trí chúng tôi cung cấp. Khi trở về trạng thái OK với một vị trí (contrived tôi biết), tất cả là tốt, và vị trí được trả lại giống như chúng tôi cung cấp nó.Đường dẫn phương thức trả trước Javax khi thiết lập đường dẫn tiêu đề Vị trí trên Trạng thái Đã tạo
Làm cách nào chúng tôi có thể trả lại vị trí không phải là đường dẫn con của vị trí của phương pháp của chúng tôi?
Trong ví dụ bên dưới: lệnh nhận "http: // localhost/foo/bar" (trạng thái đã tạo) phản hồi vị trí "http: // localhost/foo/bar/wibble" (lưu ý /foo/bar)
trong khi truy cập "http: // localhost/foo/baz" (trạng thái ok) phản hồi vị trí của "http: // localhost/wibble", đó là những gì chúng tôi muốn.
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();
}
}
Cảm ơn, tôi sẽ thử điều đó. Cách giải quyết hiện tại của chúng tôi là trả lại trạng thái 200 bằng URL trong một đối tượng, được gửi theo thứ tự đến JSON. –