Welkom bij Restful Web Services Tutorial in Java. REST is het acroniem voor REpresentational State Transfer. REST is een architectonische stijl voor het ontwikkelen van toepassingen die toegankelijk zijn via het netwerk. Rust architectonische stijl werd in het licht gebracht door Roy Fielding in zijn proefschrift in 2000.
Restful Web Services
Restful Web Services is een statenloze client-server architectuur waar webservices bronnen zijn en kunnen worden geïdentificeerd door hun URI ‘ s.,
REST-clienttoepassingen kunnen HTTP GET/POST-methoden gebruiken om Restful webservices aan te roepen. REST specificeert geen specifiek protocol om te gebruiken, maar in bijna alle gevallen wordt het gebruikt via HTTP/HTTPS. In vergelijking met SOAP webservices zijn deze lichtgewicht en volgen ze geen enkele standaard. We kunnen XML, JSON, tekst of elk ander type gegevens gebruiken voor verzoek en antwoord.
Java RESTful Web Services API
Java API for RESTful Web Services (JAX-RS) is de Java API voor het maken van REST web services., JAX-RS gebruikt annotaties om de ontwikkeling en implementatie van webservices te vereenvoudigen. JAX-RS is onderdeel van JDK, dus je hoeft niets op te nemen om zijn annotaties te gebruiken.
Restful Web Services Annotations
enkele van de belangrijke Jax-RS annotaties zijn:
-
@Path
: wordt gebruikt om het relatieve pad van klasse en methoden te specificeren. We kunnen de URI van een webservice krijgen door de annotatiewaarde van het pad te scannen., -
@GET
,@PUT
,@POST
,@DELETE
en@HEAD
: wordt gebruikt om het HTTP-aanvraagtype voor een methode te specificeren. -
@Produces
,@Consumes
: wordt gebruikt om het type verzoek en antwoord te specificeren. -
@PathParam
: wordt gebruikt om de methodeparameter aan de waarde van het pad te binden door het te ontleden.
Restful Web Services and SOAP
- SOAP is een protocol terwijl REST een architectonische stijl is.,
- SOAP server en client applicaties zijn nauw gekoppeld en binden met het WSDL contract, terwijl er geen contract is in REST web services en client.
- leercurve is gemakkelijk voor rust in vergelijking met SOAP web services.
- REST webservices verzoek – en responstypen kunnen XML, JSON, tekst enz.zijn. terwijl SOAP alleen met XML werkt.
- JAX-RS is de Java API voor REST webservices, terwijl JAX-WS de Java API is voor SOAP webservices.
REST API-implementaties
Er zijn twee belangrijke implementaties van JAX-RS API.,
- Jersey: Jersey is de referentie-implementatie van Sun. Voor het gebruik van Jersey als onze Jax-RS implementatie, alles wat we nodig hebben om de servlet in web te configureren.xml en voeg vereiste afhankelijkheden. Merk op dat JAX-RS API is onderdeel van JDK niet Jersey, dus we moeten de afhankelijkheid potten toe te voegen in onze applicatie.
- RESTEasy: RESTEasy is het JBoss-project dat JAX-RS implementeert.
Java Restful Web Services Tutorial
laten we eens kijken hoe eenvoudig Restful web service te maken met Jersey en dan RESTEasy., We zullen worden blootgesteld volgende methoden via HTTP en gebruik Chrome Postman extensie om deze te testen.,d>
Jersey Restful Web Services
het Maken van een dynamische web project en het dan kan converteren naar Maven om het skelet van uw web services-project., Onderstaande afbeelding toont de projectstructuur van het uiteindelijke project.
laten we eens kijken naar de Jersey afhankelijkheden die we hebben in pom.xml-bestand.
We zijn niet verplicht om jersey-client afhankelijkheden toe te voegen, maar als je een java programma schrijft om een REST webservice aan te roepen met behulp van Jersey dan is het vereist.
laten we nu eens kijken naar de Deployment descriptor om te leren hoe Jersey te configureren om onze webapplicatie te maken.
dat is alles wat nodig is om Jersey in onze webapplicatie te pluggen, in onze java-code zullen we Jax-RS-annotaties gebruiken., Let op de waarde van init parameter com.sun.jersey.config.property.packages
om een pakket aan te bieden dat gescand zal worden op webservicebronnen en-methoden.
REST voorbeeld Modelklassen
Allereerst zullen we twee modelbonen maken – Person
voor onze toepassingsgegevens en Response
voor het verzenden van Antwoord naar clientsystemen. Aangezien we XML-antwoord zullen sturen, moeten de bonen worden geannoteerd met @XmlRootElement
, vandaar dat we deze klasse hebben.,
REST Web Services Tutorial Services
Op basis van onze URI-structuur vindt u hieronder de service-interface en de implementatiecode.
Restful Web Services Test
dat is het. Onze webservice is klaar, gewoon exporteren als WAR-bestand en zet het in Tomcat webapps directory of implementeren in een andere container van uw keuze.
hieronder vindt u enkele van de tests die zijn uitgevoerd met Postman chrome extension voor deze webservice. Merk op dat we Accept en Content-Type waarden moeten bieden als “application/xml” in de request header, zoals weergegeven in onderstaande afbeelding.,
- getDummy
- voeg
- voor
- getAll
- verwijderen
Dat is alles voor het maken van web services met behulp van Jersey JAX-RS implementatie. Zoals je kunt zien gebruikt de meeste code Jax-RS annotaties en Jersey is aangesloten via deployment descriptor en afhankelijkheden.,
RESTEasy RESTful Web Services voorbeeld
We zullen alle zakelijke logica gebruiken die is ontwikkeld in Jersey project, maar in plaats van wijzigingen aan te brengen in hetzelfde project, heb ik een nieuw project aangemaakt. Maak een dynamisch webproject en converteer het naar Maven project. Kopieer vervolgens alle java-klassen-Person, Response, PersonService en PersonServiceImpl. Hieronder is het laatste project nadat we klaar zijn met alle veranderingen.
voeg onderstaande RESTEasy afhankelijkheden in pom toe.xml-bestand.
Hieronder is het web.xml-bestand waarin we Resteasy servlet configureren.,
merk de init-param op waar MyApp
klasse als waarde wordt gegeven, hier breiden we javax.ws.rs.core.Application
klasse uit zoals hieronder getoond.
RESTEasy Web Services Test
dat is het. Onze webservice is klaar met RESTEasy Jax-RS implementatie. Hieronder zijn enkele van de output van Postman chrome extension test.,
- getDummy
- add
- get
dat is alles voor Restful Web Services Tutorial, Ik hoop dat u geleerd over Jax-rs annotaties en begreep de voordelen van het hebben van standaard API die ons hielp bij het hergebruiken van code en het verplaatsen van Jersey naar resteasy zo gemakkelijk.