Warum REST @annotation Erzeugt
So, ich verstehe, dass Sie die Angabe der Art, aber warum? Unter welchen Bedingungen wäre es egal. Zum Beispiel, wenn ich die folgende Methode, und ich kommentiere die @Produziert Beschriftung, die es noch gibt JSON.
@GET
@Path("/json")
//@Produces({MediaType.APPLICATION_JSON})
public String getJson(){
return toJson(getResults());
}
Die API-doc sagt, 'Wenn nicht angegeben, dann ein container wird davon ausgegangen, dass jede Art produziert werden kann.' Also, warum würde ich nicht wollen, dass der container davon aus, dass?
- Wenn ich die Geschwindigkeit der Codierung lasse ich die Anmerkungen aus und es funktioniert immer noch gut.. Ein Ergebnis ist ein Ergebnis
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, es hängt von Ihrer JAX-RS-Implementierung, aber hier ist Jersey Erläuterung @Produziert Anmerkung: https://jersey.java.net/documentation/latest/jaxrs-resources.html#d0e1809
Grundsätzlich, es liegt an den client, um zu bestimmen, welchen content-type der server sollte wieder spucken.
Wenn der client unterstützt mehr als ein content-Typ, können Sie manchmal angeben, die Priorität der Inhaltstypen, die auf die Rückkehr für eine bestimmte Methode:
Wenn ein client fordert Sie Ihre JSON-nur Ressource mit einer
Accept: application/xml;
header dann streng genommen sollte der server zurückgeben406
(nicht akzeptabel) status-code, nicht den JSON-string.Wenn Sie die
@Provides
annotation, der container sollte in diesem Fall behandeln für Sie und das ist, warum Sie es verwenden sollten.