JAX-RS ist perfekt für die Umsetzung REST. Was tun Sie REST-Services in Java nennen? [geschlossen]

StackOverflow https://stackoverflow.com/questions/923566

  •  06-09-2019
  •  | 
  •  

Frage

Im Idealfall, ich bin auf der Suche nach so etwas wie JAX-RS (Annotationen, die Dienste zu beschreiben, ich nennen wollen), sondern ermöglicht REST-Services zu nennen andere Technologien implementiert (nicht JAX-RS). Jeder Vorschlag?

War es hilfreich?

Lösung

schreiben Sie in einem Kommentar, dass Sie „für etwas mehr hohe Niveau der Hoffnung“ wurden als Httpclient. Es klingt wie Restlet perfekt wäre. Es bietet einen High-Level-API für die Implementierung und mit RESTful Web-Anwendungen, mit Plug-and-Play-Adapter für die untergeordneten Implementierungen.

Zum Beispiel, um zu Posten Webformular auf eine Ressource mit Restlet 1.1:

Client client = new Client(Protocol.HTTP);

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Response response = client.post("http://host/path/to/resource", form.getWebRepresentation())

if (response.getStatus().isError()) {
    // deal with the error
    return;
}

if (response.isEntityAvailable()) {
    System.out.println(response.getEntity().getText());
}

Wenn Sie mehr Optionen auf den Antrag stellen, können Sie eine Anfrage Objekt verwenden:

Form form = new Form();
form.add("foo", "bar");
form.add("abc", "123");

Request request = new Request(Method.POST, "http://host/path/to/resource");

request.setEntity(form.getWebRepresentation());

request.setReferrerRef("http://host/path/to/referrer");

Response response = client.handle(request);

HTH!

Andere Tipps

JAX-RS (JSR311) wird nicht definiert, einen Client-API, aber die meisten JAX-RS-Implementierungen haben ein, wie Jersey , Resteasy oder Apache CXF. Der Restlet Rahmen hat auch Client-Unterstützung sowie ein seperate HTTP Client-Erweiterung .

Da es sich um spezialisierte Bibliotheken / Frameworks für REST, ich würde vorschlagen, dass Sie diese zu suchen.

Ich schlage vor, Sie nehmen einen Blick auf dem WADL Projekt . WADL zur Ruhe, was WSDL SOAP ist.

Sie müssen zuerst die REST-Schnittstelle WADL definieren. Dann können Sie das wadl2java Werkzeug darauf laufen Client-Stubs zu erzeugen, für den Rest nennt.

Wenn Sie die WADL für einen Web-Service haben, können Sie Tools implementieren, die auch mit ihm andere Dinge zu tun, zum Beispiel erzeugen serverseitige Stubs erzeugen Dokumentation, etc.

Httpclient von Apache meist (siehe http: // hc .apache.org / Httpcomponents-client-ga / ).

Als Gandalf und Darrel Miller sagte, Httpclient.

Sie müssen nicht von HTTP params Konstruktion XML sein. XML sollte nur Ihre Schnittstelle zwischen zwei getrennten Systemen sein. Mit Httpclient Sie setzt in Java mit den String-Werten zur Verfügung, goinn zurück in XML von dort unnötig ist.

Wenn Sie wieder in XML an dieser Stelle, um zu senden, auf ein anderes System, sollten Sie darüber nachdenken, die Werte aus dem HTTP bewegen params zurück in Ihrer Domain / app Logik, bevor sie mit einem anderen System zu kommunizieren. Dies ist notwendig, um eine ordnungsgemäße Trennung von Anwendungslogik von Intersystemkommunikation hält.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top