2011-10-04 30 views

Trả lời

13

Bạn có thể chỉ định chỉ mục chất lượng cho từng loại phương tiện trong chú thích @Produces. I.e.you thể làm như sau để làm Jersey thích JSON nếu cả hai XML và JSON được phép:

@Produces({"application/json;qs=1", "application/xml;qs=.5"}) 
+0

Vì vậy, với phương pháp web có khả năng sản xuất hai loại phương tiện, người yêu cầu xác định cái nào nó muốn? Nó được thực hiện thông qua một param truy vấn? Làm sao? –

+1

Sử dụng tiêu đề Yêu cầu chấp nhận. (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –

+0

Phát ngay. Cảm ơn! – FredArters

1

Bạn sẽ có thể thiết lập các @Produces chú thích để xác định định dạng lại như vậy:

@Produces({ "application/json" }) 

Tại sao không có chấp nhận tiêu đề?

+0

Điều này sẽ dẫn đến lỗi 406 bất cứ khi nào yêu cầu XML. OP muốn có thể trả về XML và JSON, nhưng mặc định là JSON nếu không được yêu cầu. – idontevenseethecode

+0

bạn có nghĩa là @Consumes ({"application/json"}) –

-2

Bạn có thể chỉ định ưu tiên của thế hệ bằng cách xác định loại phương tiện truyền thông để bạn ưu tiên trong chú thích @Produces.

@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 

Trong mã ở trên vì "ứng dụng/json" xuất hiện trước, nếu không có tiêu đề chấp nhận được chỉ định trong yêu cầu, Jersey sẽ mặc định tạo phản hồi JSON.

Sử dụng qs (theo đề xuất của Martin) làm cho tùy chọn rõ ràng hơn, nhưng hơi phức tạp hơn một chút để hiểu.

+0

Điều này có vẻ không hoạt động trong phiên bản hiện tại. Tôi không thể nói cho các phiên bản cũ của Jersey. Không có tiêu đề 'accept', ngay cả khi JSON là đầu tiên trong danh sách Produces, vẫn trả về XML. Có thể có cái gì khác mà ảnh hưởng đến điều này bên cạnh phiên bản của Jersey? – FredArters

+0

Đây chỉ là thông tin không chính xác. Thứ tự của các loại phương tiện trong chú thích Produces hoàn toàn không ảnh hưởng đến phản hồi mặc định. – Michael

+0

Vâng, Oracle cho biết thứ tự có liên quan: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html Nhưng tôi nghĩ nó thực sự phụ thuộc vào việc triển khai – Gui13

Các vấn đề liên quan