Kako napraviti REST API s SpringMVC -om u Javi

Sadržaj

Ovaj vodič će naučiti kako napraviti kratki REST API u Javi, koristeći SpringMVC. Vidjet ćemo upute GET i POST, operacije DELETE i PUT, bilo bi prikladno da ih učinite za vježbu. Prije početka preporučujem preuzimanje Eclipse STS -a, dobrog IDE -a za programiranje u proljeće, koji nam znatno olakšava izradu naših projekata:

PREUZMITE ECLIPSE STS

BilješkaMorate imati instaliranu javu, ako bolje odaberete verziju 1.8.

Imajte na umu neke općenite stvari

  • Imamo kontroler, koji je zadužen za rješavanje postavljenih zahtjeva, klasa koja djeluje kao kontrolor mora biti zabilježena sa @RestController.
  • Za svaki URL moramo primijeniti metodu. Svaka će metoda morati ići s bilješkom @RequestMapping s URL -om na koji se posjećuje i načinom zahtjeva, a također će vratiti željeni objekt.

Sada ćemo vidjeti primjer, u njemu ćemo imati klasu Person i kontroler za osobu PersonController.

1. Pokrenite projekt
Otvaramo STS i dajemo novi projekt "Početnik proljetnog projekta”, Konfiguriramo opcije i ime i dajemo Sljedeći, Ostavit ću to kao što možete vidjeti na sljedećoj slici:

POVEĆAJTE

[color = rgb (169,169,169)] Kliknite na sliku za povećanje [/ color]

Na sljedećem zaslonu koji će se pojaviti moramo odabrati opcije koje ćemo koristiti, ostavit ćemo sve netaknutima i kliknemo Završi i već imamo izrađen projekt, imat ćemo sljedeću strukturu (Imajte na umu da sam već stvorio 2 klase koje ćemo koristiti, a hvatanje nije iz STS -a):

To ćemo vidjeti u src / main / java Unutar paketa već je stvorena klasa koja sadrži sljedeći kôd:

 @SpringBootApplication javna klasa ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Napuštamo ovu klasu onakvu kakva jest, pomaže nam u primjeru. A sad idemo na nastavu pom.xml i provjeravamo imamo li sljedeći kôd, ako nema, jednostavno ga dodamo:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
BilješkaPrilikom spremanja te datoteke možda ćete morati ažurirati svoj projekt s maven -om, u STS -u to možete učiniti (ALT + F5).

Sada ćemo vidjeti klase kako stvaramo kako izgledaju.

2. Klasa osoba
Prvo stavljamo kôd, a zatim se objašnjava.

 javni razred Perona {private long id = -1; privatni naziv niza; privatna int dob; javna osoba () {} javna osoba (ime niza, int dob) {super (); this.name = ime; this.age = dob; } javni niz string getName () {return name; } public void setName (Naziv niza) {this.name = name; } public int getAge () {povratna dob; } public void setAge (int e) {age = e; } public long getId () {return id; } public void setId (long id) {this.id = id; }} 
Ovu klasu nije teško razumjeti, sve što morate znati je da su nam potrebni get i set svakog atributa, a također i konstruktor bez parametara, jer će ih koristiti kontroler, pa ćemo izbjeći rad s mnogim parametrima i Spring će ih ubrizgati i stvoriti objekt.

3. Klasa PersonaController
Opet kao prvi dio je kôd, a zatim objašnjenje.

 @RestController javna klasa PersonController {private Map people = new ConcurrentHashMap (); privatno Dugo korišteniID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) javna zbirka damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) javna osoba addPersona (@RequestBody Osoba p) {idUsado ++; p.setId (idUsado); ljudi.put (idUsado, p); return p; } @RequestMapping (value = " / people / {id}", method = RequestMethod.GET) javni ResponseEntity getPersona (@PathVariable long id) {Osoba p = people.get (id); if (p! = null) vrati novi ResponseEntity (p, HttpStatus.OK); vratiti novi ResponseEntity (HttpStatus.NOT_FOUND); }}
Što nećemo koristiti bazu podataka Mi stvaramo kartu, da imamo bazu podataka, ovo bi se zamijenilo njezinim spremištem, a varijabla idUsado ne bi bila potrebna, ali dodavanje baze podataka nije cilj vodiča.
Unutar bilješke Mapiranje zahtjeva Vidimo da imamo i metodu, prema zadanim postavkama je GET, pa je u tim metodama ne bi bilo potrebno dodavati, ali ne boli.

Imamo 3 metode
dajte ljudiOno što će učiniti je vratiti sve ljude koje imamo na karti (people.values ​​()). Nema većih komplikacija.

addPersonKoristi se za dodavanje osobe u našu zbirku, možete vidjeti da je parametar koji imamo označen @RequestBody, je ono što primamo od klijenta (tijelo zahtjeva). Zabilješka

 @ResponseStatus (HttpStatus.CREATED)
Postavljeno je da vrati 201 kao kôd odgovora. U tijelu se može vidjeti kako se svaki put kada se nazove id povećava za jedan, tako da je jedinstven i dodjeljujemo ga osobi, zatim ga dodajemo na mapu i na kraju tijelo odgovora funkcije je isto osoba.

getPersonTražena osoba bit će nam vraćena putem id -a. Ovdje imamo da se funkcija vraća

 ResponseEntity
Ovo je razlog da vratite a u redu i osoba u slučaju da postoji ili a NIJE PRONAĐENO. Ovdje je označen parametar sa @PathVariable, taj će parametar imati vrijednost {iskaznica} koje vidite u RequestMappingu i ono što stavljamo u URL, na primjer / people / 1 poziva ovu funkciju s id -om u 1.

BilješkaZabilješku RequestMapping možete staviti točno iznad razreda, kao što dolje prikazujem:

 @RestController @RequestMapping ("/ people") javna klasa PersonaController {…}
Ako to učinite, izbjeći ćete ponavljanje ljudi u svakoj metodi, a jednostavno možete staviti sljedeće:
 @RequestMapping (value = "/", method = RequestMethod.GET) 
Ako postoji nekoliko metoda, možda se ne isplati, ali za mnoge je to zasigurno najbolja opcija.

Pa završili smo ovaj mali API.

4. Kako pokrenuti projekt
Da biste pokrenuli projekt, odaberite svoj projekt, na traci izbornika vidjet ćete bijeli trokut unutar zelenog kruga (uobičajeno izvođenje u eklipsi), kliknite na mali crni trokut s desne strane, idite na Rune i kliknite na Spring Boot aplikacija.

POVEĆAJTE

[color = # a9a9a9] Kliknite na sliku za povećanje [/ color]

Ako želite proširiti primjer, preporučujem da dodate metode za posluživanje zahtjeva STAVITI Y IZBRISATI, morat ćete znati id osobe koju želite izmijeniti, pa ćete je primiti kao u zadnjoj funkciji, a u PUT -u ćete također morati poslati podatke kao što smo to učinili u funkciji POST.

Ako želiš testirajte svoj REST API bez potrebe programiranja klijenta za slanje zahtjeva možete koristiti poštara, to je dodatak za Google Chrome:

Ovdje možete odabrati željenu vrstu zahtjeva, popuniti zaglavlja i tijelo koje se mora poslati, ako zahtijeva autentifikaciju itd. To je vrlo cjelovit program.

POVEĆAJTE

[color = # a9a9a9] Kliknite na sliku za povećanje [/ color]

Na primjer, zahtjev za primanje da svi ljudi u API -ju rade na localhost -u i slušaju na portu 80:

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave