Sådan laver du en REST API med SpringMVC i Java

Indholdsfortegnelse

Denne vejledning vil lære hvordan man laver en kort REST API i Java ved hjælp af SpringMVC. Vi vil se GET og POST instruktionerne, SLET og PUT operationerne, det ville være praktisk for dig at gøre dem til øvelse. Inden jeg starter, anbefaler jeg at downloade Eclipse STS, en god IDE til programmering i foråret, det gør det meget lettere for os at oprette vores projekter:

DOWNLOAD ECLIPSE STS

BemærkDu skal have java installeret, hvis du vælger version 1.8 bedre.

Nogle generelle ting at huske på

  • Vi har en dataansvarlig, som er ansvarlig for at tage sig af de anmodninger, der fremsættes, den klasse, der fungerer som en controller, skal noteres med @RestController.
  • For hver URL skal vi implementere en metode. Hver metode skal følge med annotationen @RequestMapping med den webadresse, som den deltager i, og anmodningens metode, og den returnerer også det ønskede objekt.

Nu skal vi se et eksempel, i det vil vi have en Person -klasse og en controller til PersonController -personen.

1. Start projektet
Vi åbner STS og giver et nyt projekt "Forårsprojekt Starter”, Vi konfigurerer mulighederne og navnet og giver Næste, Jeg vil forlade det, som du kan se på følgende billede:

FORSTØRRE

[color = rgb (169,169,169)] Klik på billedet for at forstørre [/ color]

I den næste skærm, der vises, skal vi vælge de muligheder, vi skal bruge, vi vil lade alt være uberørt, og vi klikker Afslut og vi har allerede oprettet projektet, har vi følgende struktur (Bemærk, at jeg allerede har oprettet de 2 klasser, som vi skal bruge, og indfangningen er ikke fra STS):

Det vil vi se i src / main / java Inde i pakken er der allerede oprettet en klasse, og den indeholder følgende kode:

 @SpringBootApplication public class EksempelApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Vi forlader denne klasse som den er, det hjælper os med at køre vores eksempel. Lad os nu gå til klassen pom.xml og vi kontrollerer, om vi har følgende kode, hvis det ikke er det, tilføjer vi det bare:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
BemærkDu skal muligvis opdatere dit projekt med maven, når du gemmer filen, i STS har du mulighed for at gøre det (ALT + F5).

Nu skal vi se de klasser, som vi skaber, hvordan de ser ud.

2. Person klasse
Først satte vi koden, og derefter forklares den.

 public class Perona {private long id = -1; privat strengnavn; privat alder; offentlig person () {} offentlig person (strengnavn, int alder) {super (); dette.navn = navn; denne.alder = alder; } public String getName () {return name; } public void setName (strengnavn) {this.name = navn; } public int getAge () {returnalder; } public void setAge (int e) {alder = e; } public long getId () {return id; } public void setId (long id) {this.id = id; }} 
Denne klasse er ikke svær at forstå, alt hvad du skal vide er, at vi har brug for get og sæt for hver attribut og også konstruktøren uden parametre, da de vil blive brugt af controlleren, så vi undgår at arbejde med mange parametre og Spring vil injicere disse og oprette objektet.

3. PersonaController klasse
Igen som den første del er koden og derefter forklaringen.

 @RestController public class PersonController {private Map people = new ConcurrentHashMap (); private Long usedID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) offentlig samling damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) offentlig person addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); returnere p; } @RequestMapping (value = " / people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Person p = people.get (id); hvis (p! = null) returnerer ny ResponseEntity (p, HttpStatus.OK); returner ny ResponseEntity (HttpStatus.NOT_FOUND); }}
Hvad vi kommer ikke til at bruge en database Vi opretter et kort, hvis vi havde en database, ville dette blive erstattet af dets arkiv, og idUsado -variablen ville ikke være nødvendig, men tilføjelse af DB er ikke målet med selvstudiet.
Inde i kommentaren RequestMapping Vi ser, at vi også har metoden, som standard er det GET, så i disse metoder ville det ikke være nødvendigt at tilføje det, men det gør ikke ondt.

Vi har 3 metoder
gimme folkDet vil gøre at returnere alle de mennesker, vi har på vores kort (people.values ​​()). Det har ingen større komplikation.

addPersonDet bruges til at tilføje en person til vores samling, du kan se, at den parameter, vi har, er kommenteret med @RequestBody, er, hvad vi modtager fra klienten (anmodningens brødtekst). Kommentaren

 @ResponseStatus (HttpStatus.CREATED)
Den er indstillet til at returnere en 201 som en svarskode. Det kan ses i kroppen, hvordan hver gang det kaldes id øges med en, så det er unikt, og vi tildeler det til personen, så tilføjer vi det til kortet og endelig er svarets krop af funktionen det samme person.

getPersonDen anmodede person vil blive returneret til os via id'et. Her har vi, at funktionen vender tilbage

 SvarEntity
Dette er for at returnere en okay og personen, hvis der er eller a IKKE FUNDET. Parameteren her er kommenteret med @PathVariable, vil denne parameter have værdien af {id} som du ser i RequestMapping og er, hvad vi putter i URL'en, f.eks. / people / 1 kalder denne funktion med id'et i 1.

BemærkDu kan sætte RequestMapping -annotationen lige over klassen, som jeg viser nedenfor:

 @RestController @RequestMapping ("/ people") public class PersonaController {…}
Hvis du gør det, undgår du at gentage mennesker i hver metode, og du kan ganske enkelt sætte følgende:
 @RequestMapping (value = "/", method = RequestMethod.GET) 
Hvis der er få metoder, er det måske ikke det værd, men for mange er det bestemt den bedste løsning.

Nå har vi afsluttet denne lille API.

4. Sådan køres projektet
For at køre projektet skal du vælge dit projekt, i menulinjen vil du se en hvid trekant inde i en grøn cirkel (det sædvanlige løb i elclipse), klik på den lille sorte trekant til højre, gå til Runer og klik på Spring Boot App.

FORSTØRRE

[color = # a9a9a9] Klik på billedet for at forstørre [/ color]

Nu, hvis du vil udvide eksemplet, anbefaler jeg at tilføje metoderne til visning af anmodninger SÆTTE Y SLET, skal du kende id'en til den person, der skal ændres, så du modtager det som i den sidste funktion, og i PUT skal du også sende dataene, som vi har gjort i POST -funktionen.

Hvis du vil test din REST API uden at skulle programmere en klient til at komme med anmodninger du kan bruge postbud, det er et Google Chrome -plugin:

Her kan du vælge den type anmodning, du ønsker, udfylde overskrifterne og brødteksten, der skal sendes, hvis det kræver godkendelse osv. Det er et meget komplet program.

FORSTØRRE

[color = # a9a9a9] Klik på billedet for at forstørre [/ color]

For eksempel en get -anmodning om at få alle mennesker i API'et til at køre på localhost og lytte på port 80:

Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave