Cum se face un API REST cu SpringMVC în Java

Cuprins

Acest tutorial va preda cum se face un scurt API REST în Java, folosind SpringMVC. Vom vedea instrucțiunile GET și POST, operațiunile DELETE și PUT, ar fi convenabil să le faceți pentru practică. Înainte de a începe, vă recomand să descărcați Eclipse STS, un IDE bun pentru programare în primăvară, ne face mult mai ușor să ne creăm proiectele:

DESCARCĂ ECLIPSE STS

NotăTrebuie să aveți java instalat, dacă alegeți versiunea 1.8 mai bună.

Câteva lucruri generale de reținut

  • Avem un controlor, care este însărcinat să răspundă solicitărilor care sunt făcute, clasa care acționează ca controlor trebuie notată cu @RestController.
  • Pentru fiecare adresă URL trebuie să implementăm o metodă. Fiecare metodă va trebui să se alăture adnotării @RequestMapping cu adresa URL la care este participat și metoda cererii și va returna și obiectul dorit.

Acum vom vedea un exemplu, în el vom avea o clasă Person și un controler pentru persoana PersonController.

1. Porniți proiectul
Deschidem STS și oferim un nou proiect "Spring Project Starter”, Configurăm opțiunile și numele și dăm Următorul, Îl voi lăsa așa cum puteți vedea în următoarea imagine:

MARI

[color = rgb (169,169,169)] Faceți clic pe imagine pentru a mări [/ color]

În următorul ecran care va apărea, trebuie să alegem opțiunile pe care le vom folosi, vom lăsa totul neatins și vom face clic finalizarea și deja avem proiectul creat, vom avea următoarea structură (Rețineți că am creat deja cele 2 clase pe care urmează să le folosim, iar captura nu este de la STS):

Vom vedea asta în src / main / java În interiorul pachetului există deja o clasă creată și conține următorul cod:

 @SpringBootApplication public class ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Lăsăm această clasă așa cum este, ne ajută să ne dăm exemplul. Acum hai să mergem la curs pom.xml și verificăm dacă avem următorul cod, dacă nu este, îl adăugăm pur și simplu:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
NotăEste posibil să trebuiască să vă actualizați proiectul cu maven atunci când salvați acel fișier, în STS aveți opțiunea de a face acest lucru (ALT + F5).

Acum vom vedea clasele pe care le creăm cum arată.

2. Clasa de persoană
Mai întâi punem codul și apoi se explică.

 public class Perona {private long id = -1; numele șirului privat; vârstă privată; public Person () {} public Person (String name, int age) {super (); this.name = nume; this.age = vârstă; } public String getName () {return name; } public void setName (String name) {this.name = nume; } public int getAge () {return age; } public void setAge (int e) {age = e; } public long getId () {return id; } public void setId (id lung) {this.id = id; }} 
Această clasă nu este dificil de înțeles, tot ce trebuie să știți este că avem nevoie de get și setul fiecărui atribut și, de asemenea, de constructor fără parametri, deoarece acestea vor fi utilizate de controler, așa că vom evita să lucrăm cu mulți parametri și Spring le va injecta și va crea obiectul.

3. Clasa PersonaController
Din nou, prima parte este codul și apoi explicația.

 @RestController public class PersonController {private Map people = new ConcurrentHashMap (); private ID folosit de mult = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) Public Person addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); retur p; } @RequestMapping (value = "/ people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Persoană p = people.get (id); if (p! = nul) returnează ResponseEntity nou (p, HttpStatus.OK); returnează noua ResponseEntity (HttpStatus.NOT_FOUND); }}
Ce nu vom folosi o bază de date Creăm o hartă, dacă am avea o bază de date, aceasta ar fi înlocuită de depozitul său, iar variabila idUsado nu ar fi necesară, dar adăugarea DB nu este obiectivul tutorialului.
În interiorul adnotării RequestMapping Vedem că avem și metoda, implicit este GET, deci în acele metode nu ar fi necesar să o adăugăm, dar nu dăunează.

Avem 3 metode
dă-mi oameniCeea ce va face este să returnăm toți oamenii pe care îi avem pe harta noastră (people.values ​​()). Nu are nicio complicație majoră.

addPersonEste folosit pentru a adăuga o persoană la colecția noastră, puteți vedea că parametrul pe care îl avem este adnotat @RequestBody, este ceea ce primim de la client (corpul cererii). Adnotarea

 @ResponseStatus (HttpStatus.CREATED)
Este setat să returneze un 201 ca cod de răspuns. Se poate vedea în corp cum de fiecare dată când se numește id-ul crește cu unul, astfel încât acesta este unic și îl atribuim persoanei, apoi îl adăugăm pe hartă și, în final, corpul de răspuns al funcției este același persoană.

getPersonPersoana solicitată ne va fi returnată prin ID. Aici avem că funcția revine

 ResponseEntity
Acest lucru este pentru a returna un Bine și persoana în cazul în care există sau a NU A FOST GĂSIT. Parametrul de aici este adnotat cu @PathVariable, acel parametru va avea valoarea {id} pe care îl vedeți în RequestMapping și este ceea ce punem în URL, de exemplu / people / 1 numește această funcție cu id-ul în 1.

NotăPuteți pune adnotarea RequestMapping chiar deasupra clasei, așa cum arăt mai jos:

 @RestController @RequestMapping ("/ people") public class PersonaController {…}
Dacă faceți acest lucru, veți evita repetarea oamenilor în fiecare metodă și puteți pur și simplu pune următoarele:
 @RequestMapping (valoare = "/", metodă = RequestMethod.GET) 
Dacă există puține metode, este posibil să nu merite, dar pentru mulți este cu siguranță cea mai bună opțiune.

Ei bine, am terminat acest mic API.

4. Cum se execută proiectul
Pentru a rula proiectul, selectați proiectul, în bara de meniu veți vedea un triunghi alb în interiorul unui cerc verde (cursa obișnuită în elclipse), faceți clic pe micul triunghi negru din dreapta, accesați Rune și faceți clic pe Aplicația Spring Boot.

MARI

[color = # a9a9a9] Faceți clic pe imagine pentru a mări [/ color]

Acum, dacă doriți să extindeți exemplul, vă recomand să adăugați metodele de servire a cererilor A PUNE Da ȘTERGE, va trebui să cunoașteți identitatea persoanei de modificat, așa că o veți primi ca în ultima funcție și în PUT va trebui să trimiteți datele așa cum am făcut în funcția POST.

Dacă doriți testați API-ul REST fără a fi nevoie să programați un client pentru a face cereri poți folosi poștaș, este un plugin Google Chrome:

Aici puteți alege tipul de cerere dorit, completați anteturile și corpul care trebuie trimis, dacă necesită autentificare etc. Este un program foarte complet.

MARI

[color = # a9a9a9] Faceți clic pe imagine pentru a mări [/ color]

De exemplu, o cerere pentru a obține toate persoanele din API care rulează pe localhost și ascultă în portul 80:

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave