2011-10-04 14 views

Odpowiedz

13

Możesz przypisać indeks jakości do każdego rodzaju mediów w adnotacji @Produkcje. I.e.you można wykonać następujące czynności, aby Jersey preferują JSON i XML zarówno jeśli JSON jest dozwolony:

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

Więc w przypadku metody sieciowej, która umożliwia generowanie dwóch typów multimediów, w jaki sposób requester określa, który z nich chce? Czy odbywa się to poprzez parametr zapytania? W jaki sposób? –

+1

Korzystanie z nagłówka żądania Accept. (http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z3) –

+0

Spot na. Dzięki! – FredArters

1

Powinieneś być w stanie ustawić @Produces adnotacji do określenia formatu powrotną tak:

@Produces({ "application/json" }) 

Jak to się stało nie akceptuje nagłówek?

+0

Spowoduje to błąd 406, gdy zażąda XML. OP chce mieć możliwość zwracania XML i JSON, ale domyślnie JSON, jeśli żadna nie jest wymagana. – idontevenseethecode

+0

masz na myśli @Consumes ({"application/json"}) –

-2

Można określić preferencje pokolenia poprzez wyszczególnienie rodzajów mediów w kolejności preferencji w adnotacji @Produces.

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

W powyższym kodzie, ponieważ „application/json” jest na pierwszym miejscu, jeśli nie akceptują nagłówek jest określony we wniosku Jersey będzie domyślnie generowanie odpowiedzi JSON.

Użycie qs (zgodnie z sugestią Martina) powoduje, że preferencja jest bardziej wyraźna, ale jest nieco bardziej skomplikowana w zrozumieniu.

+0

Wygląda na to, że nie działa w bieżącej wersji. Nie mogę mówić o starszych wersjach Jersey. Bez nagłówka "accept", nawet jeśli JSON jest pierwszym na liście Productions, nadal zwraca XML. Czy może być coś innego, co wpływa na to poza wersją Jersey? – FredArters

+0

To jest po prostu niepoprawna informacja. Kolejność typów mediów w adnotacjach Produkcje nie ma absolutnie żadnego wpływu na domyślną odpowiedź. – Michael

+0

Cóż, Oracle twierdzi, że zamówienie jest istotne: https://docs.oracle.com/cd/E19798-01/821-1841/6nmq2cp2c/index.html Myślę jednak, że jest to zależne od wdrożenia – Gui13

Powiązane problemy