[JAVA] JAX-RS (Jersey) Tipps

Empfangen Sie Parameter als Mitglieder der Ressourcenklasse

Zusätzlich zur individuellen Definition von "@ HeaderParam", "@ PathParam" und "@ QueryParam" in jeder Ressourcenmethode können sie abhängig vom Konstruktor eingefügt und in den Mitgliedern der Ressourcenklasse gespeichert werden (wenn die Ressourcenklasse nicht Singleton ist).

Der Body (Entity) und @FormParam (bezogen auf den Body) können jedoch nicht in den Konstruktor eingefügt werden und müssen als Argument der Ressourcenmethode empfangen werden.

class Resource {
    Resource(@PathParam("path") String pathParam) { ... }
}
Referenz

Greifen Sie auf HTTP-Anforderungsinformationen zu, ohne HttpServletRequest zu verwenden

Um in der Ressourcenmethode auf unformatierte HTTP-Anforderungsinformationen (HTTP-Methode, Pfad, Abfrageparameter, Header, Stream-Format-Body) zu verweisen, ist es einfach, "HttpServletRequest" als Abhängigkeitsinjektion zu verwenden.

class Resource {
	@Inject
	private HttpServletRequest request;
}

Diese Methode hängt jedoch vom Servlet-Container ab. Gehen Sie also wie folgt vor, um mit der JAX-RS-API zu verwalten.

class Resource {
  @Context Request request;
  @Context UriInfo uriInfo;
  @Context HttpHeaders httpHeaders;

  public Response post(InputStream body) {
    //HTTP-Methode
    request.getMethod();
    //Pfad
    uriInfo.getPath();
    //Parameter abfragen
    uriInfo.getQueryParameters();
    //Header
    httpHeaders.getRequestHeaders();
    //Körper (InputStream)
    body;
    ...
  }
}

Recommended Posts

JAX-RS (Jersey) Tipps
Java-Tipps, Tipps
Schienen Tipps
Java-Tipps
Einführung in Zipkin to Jersey (JAX-RS2) -Anwendungen