2016-09-04 4 views
0

Ich habe auf RESTful Web Services auf einer hohen Ebene (nicht sehr erschöpfend) gearbeitet, codiert einige REST-basierte Web-Services.REST und RESTful WS

Um meine Reise in RESTful WS zu beginnen, lese ich Online-Artikel (Wiki, Online-Tutorials usw.) und ich erfuhr, dass es ein architektonischer Stil ist, der Einschränkungen spezifiziert und bei Anwendung auf Web-Service wünschenswerte Eigenschaften, wie Leistung Skalierbarkeit usw. Ok, das ist der theoretische Teil dieses Konzepts.

Ein einfaches Beispiel mit JAX-RS:

@Path("/simple") 
public class SimpleRESTService { 

    @GET 
    @Path("/{param}") 
    public Response getMsg(@PathParam("param") String message) { 
     String output = "Jersey say : " + message; 
     return Response.status(200).entity(output).build(); 
    } 
} 

Mein Zweifel ist:

Wenn REST Architektur (und Verwendung dieser Richtlinien RESTful Web Services Build), was zu tun ist JAX-RS? Was ich verstanden habe, ist REST nur architektonischer Stil und keine Spezifikation, was hat JAX-RS damit zu tun? Ich habe Schwierigkeiten, die Beziehung zwischen diesen beiden Entitäten zu verstehen.

Kann mir jemand helfen, dies in einfachen Worten zu verstehen.

Antwort

1

REST ist in der Tat ein Architekturstil Web-Service des Gebäudes unabhängig von der Anwendungsschicht-Protokollen (es über FTP oder HTTP als auch umgesetzt werden könnte).

JAX-RS ist nur eine standardisierte API von Java EE, mit der Sie problemlos RESTful-Dienste in Java implementieren können. Es ist ein Toolkit für einen Entwickler, der die Last von seinen Schultern nimmt, und als Teil von Java EE wird es in Anwendungsservern wie WildFly out of the box implementiert.

Beachten Sie jedoch, dass es genauso möglich ist, REST-Services in Frameworks wie Spring mit den Spring Web MVC- und Spring HATEOAS-Modulen zu erstellen.

Edit:
Obwohl REST eine gut definierte Architektur ist, ist es (wie Sie bereits erwähnt) keine Spezifikation so gibt es eine Menge nebligen Gebieten über sie unter den Entwicklern ist.

Kurz gesagt, alles, was es sagt, ist "Hey Mann, wenn Sie das Kommunikationsprotokoll (sagen HTTP) auf diese Weise und auf diese Weise verwenden, wird es sehr bequem für Sie zu ändern und skalieren und es wird sehr einfach für die Kunden Ihres Dienstes, um mit Ihnen zu sprechen ".

JAX-RS gibt Ihnen die Möglichkeit, Service-Endpunkte mit dynamischen Teilen zu definieren (zB:/api/jediknights/{id}, so dass die ID alles sein kann), erleichtert es, auf den Client in der reagieren Format Ihres Wunsches (oder Ihres Kunden), wie XML oder JSON. Es bietet praktische Wrapper-Objekte, um Ihren Antworttext zusammen mit Statuscodes und Überschriften und vielen anderen praktischen Dingen zu umhüllen.

Der Haken ist jedoch: es ist immer noch Ihre Verantwortung als Entwickler, die Grundsätze der REST-Stil zu halten. Nichts wird wirklich von JAX-RS auf Sie angewendet.

Um fair zu sein, könnten Sie sogar einen RESTful Web-Service erreichen, indem Sie nur die etwas untergeordnete Servlet-API verwenden. JAX-RS versteckt nur die unnötigen Details von Ihnen und wird Ihnen das Leben erleichtern.

Ich hoffe, es wurde ein bisschen klarer :)

+0

Vielen Dank für Ihre Antwort. Was macht JAX-RS im Zusammenhang mit REST WS? Definitiv sind sie selbst keine REST-konforme WS-Implementierung. Also was genau sind sie? Wenn Sie Ihre Antwort ein wenig mehr ausarbeiten können, wäre es hilfreich. – CuriousMind

+0

Danke für die Erweiterung auf Ihre Antwort, es ist jetzt sehr klar :). Akzeptieren Sie Ihre Erklärung als Antwort auf meine Frage. Danke vielmals! – CuriousMind

1

Java API für RESTful Web Services (JAX-RS), ist ein Set, wenn APIs zu Entwickler REST-Dienst. JAX-RS ist Teil des Java EE6 und macht Entwickler, um REST Web-Anwendung leicht zu entwickeln.

Sie können einige mehr hier lesen: http://www.mkyong.com/tutorials/jax-rs-tutorials/