Jakarta RESTful-Webdienste - Jakarta RESTful Web Services
| Originalautor(en) | Sonne Mikrosysteme |
|---|---|
| Entwickler | Eclipse-Stiftung |
| Stabile Version | 3.0 / 30. Juni 2020
|
| Repository | |
| Geschrieben in | Java |
| Betriebssystem | Plattformübergreifend |
| Plattform | Java |
| Typ | Anwendungsrahmen |
| Lizenz | EPL 2.0 oder GPL v2 mit Classpath-Ausnahme |
| Webseite |
Projekte |
Jakarta RESTful Web Services , ( JAX-RS ; ehemals Java API for RESTful Web Services) ist eine Jakarta EE API- Spezifikation, die Unterstützung beim Erstellen von Webdiensten gemäß dem Architekturmuster Representational State Transfer (REST) bietet . JAX-RS verwendet Annotationen , die in Java SE 5 eingeführt wurden, um die Entwicklung und Bereitstellung von Webservice-Clients und -Endpunkten zu vereinfachen.
Ab Version 1.1 ist JAX-RS ein offizieller Bestandteil von Java EE 6. Ein bemerkenswertes Merkmal als offizieller Bestandteil von Java EE ist, dass keine Konfiguration erforderlich ist, um JAX-RS zu verwenden. Für Umgebungen ohne Java EE 6 ist ein kleiner Eintrag im Bereitstellungsdeskriptor web.xml erforderlich.
Spezifikation
JAX-RS bietet einige Anmerkungen, um die Zuordnung einer Ressourcenklasse (ein POJO ) als Webressource zu erleichtern . Die Annotationen verwenden das Java-Paket jakarta.ws.rs (früher wurde es javax.ws.rsaber am 19. Mai 2019 umbenannt). Sie beinhalten:
-
@Pathgibt den relativen Pfad für eine Ressourcenklasse oder Methode an. -
@GET,@PUT,@POST,@DELETEund@HEADgeben Sie den HTTP-Anforderungstyp einer Ressource an. -
@Producesgibt die Antwort- Internet-Medientypen an (die für die Inhaltsverhandlung verwendet werden ). -
@Consumesgibt die akzeptierten Anforderungs-Internet-Medientypen an.
Darüber hinaus bietet es weitere Anmerkungen zu Methodenparametern , um Informationen aus der Anforderung zu ziehen. Alle @*ParamAnmerkungen haben einen Schlüssel in irgendeiner Form, der verwendet wird, um den erforderlichen Wert nachzuschlagen.
-
@PathParambindet den Methodenparameter an ein Pfadsegment. -
@QueryParambindet den Methodenparameter an den Wert eines HTTP- Abfrageparameters . -
@MatrixParambindet den Methodenparameter an den Wert eines HTTP-Matrixparameters . -
@HeaderParambindet den Methodenparameter an einen HTTP-Headerwert . -
@CookieParambindet den Methodenparameter an einen Cookie- Wert. -
@FormParambindet den Methodenparameter an einen Formularwert . -
@DefaultValuegibt einen Standardwert für die obigen Bindungen an, wenn der Schlüssel nicht gefunden wird. -
@Contextgibt den gesamten Kontext des Objekts zurück (z. B.@Context HttpServletRequest request).
JAX-RS 2.0
Im Januar 2011 hat der JCP die Expertengruppe JSR 339 gebildet, um an JAX-RS 2.0 zu arbeiten. Die Hauptziele sind (unter anderem) eine gemeinsame Client-API und die Unterstützung für Hypermedia nach dem HATEOAS-Prinzip von REST . Im Mai 2013 erreichte es die Final Release-Phase.
Am 22.08.2017 wurde die endgültige Version der JAX-RS 2.1-Spezifikation veröffentlicht. Zu den wichtigsten neuen unterstützten Funktionen gehören vom Server gesendete Ereignisse , reaktive Clients und JSON-B.
Implementierungen
Implementierungen von JAX-RS umfassen:
- Apache CXF , ein Open-Source- Webservice- Framework
- Jersey , die Referenzimplementierung von Sun (jetzt Oracle )
- RESTeasy , die Implementierung von JBoss
- Restlet
-
WebSphere-Anwendungsserver von IBM :
- Version 7.0: über das "Feature Pack for Communications Enabled Applications"
- Ab Version 8.0: nativ
- WebLogic Application Server von Oracle , siehe Hinweise
- Apache Toskana ( http://tuscany.apache.org/documentation-2x/sca-java-bindingrest.html ), eingestellt
- Cuubez-Framework ( https://web.archive.org/web/20190707005602/http://cuubez.com/ )
- Everrest , Codenvys Implementierung
- Jello-Framework , Java Application Framework, optimiert für Google App Engine, einschließlich einer leistungsstarken RESTful-Engine und eines umfassenden Datenautorisierungsmodells.
- Apache TomEE , eine Ergänzung zu Apache Tomcat
Verweise
- Hadley, Marc und Paul Sandoz, Hrsg. (17. September 2009). JAX-RS: Java API für RESTful WebServices (Version 1.1), Java Community Process