Kā izveidot REST API ar SpringMVC Java

Satura rādītājs

Šī apmācība iemācīs kā izveidot īsu REST API Java, izmantojot SpringMVC. Mēs redzēsim GET un POST instrukcijas, DELETE un PUT darbības, jums būtu ērti tās veikt praksē. Pirms sākt, es ieteiktu lejupielādēt Eclipse STS, kas ir labs IDE programmēšanai pavasarī, tāpēc mums ir daudz vieglāk izveidot savus projektus:

DOWNLOAD ECLIPSE STS

PiezīmeJa izvēlaties 1.8 versiju, jums ir jābūt instalētai java.

Dažas vispārīgas lietas, kas jāpatur prātā

  • Mums ir kontrolieris, kas atbild par iesniegto pieprasījumu izpildi, klase, kas darbojas kā kontrolieris, ir jāatzīmē ar @RestController.
  • Katram URL mums ir jāievieš metode. Katrai metodei būs jāiet kopā ar anotāciju @RequestMapping ar URL, uz kuru tas tiek apmeklēts, un pieprasījuma metodi, un tas arī atgriezīs vēlamo objektu.

Tagad mēs redzēsim piemēru, tajā mums būs Personu klase un PersonController personas kontrolieris.

1. Sāciet projektu
Mēs atveram STS un sniedzam jaunu projektu "Pavasara projektu iesācējs”, Mēs konfigurējam opcijas un nosaukumu un dodam Nākamais, Es to atstāšu, kā jūs varat redzēt nākamajā attēlā:

PALIELINĀT

[color = rgb (169,169,169)] Noklikšķiniet uz attēla, lai to palielinātu [/ color]

Nākamajā ekrānā, kas parādīsies, mums jāizvēlas iespējas, kuras mēs izmantosim, mēs atstāsim visu neskartu un noklikšķināsim Pabeigt un mums jau ir izveidots projekts, mums būs šāda struktūra (ņemiet vērā, ka es jau esmu izveidojis 2 klases, kuras mēs izmantosim, un tveršana nav no STS):

To mēs redzēsim iekšā src / main / java Paketē jau ir izveidota klase, un tajā ir šāds kods:

 @SpringBootApplication publiskā klase ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Mēs atstājam šo klasi tādu, kāda tā ir, tas palīdz mums rādīt savu piemēru. Tagad ejam uz klasi pom.xml un mēs pārbaudām, vai mums ir šāds kods, ja tā nav, mēs vienkārši pievienojam to:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
PiezīmeSaglabājot šo failu, iespējams, būs jāatjaunina projekts ar maven, STS jums ir iespēja to darīt (ALT + F5).

Tagad mēs redzēsim klases, kuras mēs veidojam, kā tās izskatās.

2. Personu klase
Vispirms mēs ievietojam kodu un pēc tam to izskaidrojam.

 publiskā klase Perona {privāts garais id = -1; privāts virknes nosaukums; privāts int vecums; public Person () {} public Person (String name, int age) {super (); this.name = vārds; šis.vecums = vecums; } publiska virkne getName () {atgriešanās vārds; } public void setName (Virknes nosaukums) {this.name = name; } public int getAge () {atgriešanās vecums; } public void setAge (int e) {vecums = e; } public long getId () {atgriešanās id; } public void setId (garš id) {this.id = id; }} 
Šo klasi nav grūti saprast, viss, kas jums jāzina, ir tas, ka mums ir nepieciešama katra atribūta iegūšana un kopa, kā arī konstruktors bez parametriem, jo ​​tos izmantos kontrolieris, tāpēc mēs izvairīsimies no darba ar daudziem parametriem un Spring ievadīs tos un izveidos objektu.

3. PersonaController klase
Atkal kā pirmā daļa ir kods un pēc tam paskaidrojums.

 @RestController publiskās klases PersonController {private Map people = new ConcurrentHashMap (); privāts Ilgi lietotsID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) publiska persona addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); atgriezties p; } @RequestMapping (value = " / people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Persona p = people.get (id); ja (p! = null) atdod jaunu ResponseEntity (p, HttpStatus.OK); atgriezt jaunu ResponseEntity (HttpStatus.NOT_FOUND); }}
Kas mēs neizmantosim datu bāzi Mēs izveidojam karti, ja mums būtu datu bāze, tā tiktu aizstāta ar tās repozitoriju, un mainīgais idUsado nebūtu nepieciešams, taču DB pievienošana nav apmācības mērķis.
Anotācijas iekšpusē RequestMapping Mēs redzam, ka mums ir arī šī metode, pēc noklusējuma tā ir GET, tāpēc šajās metodēs tas nebūtu jāpievieno, bet tas nesāp.

Mums ir 3 metodes
dodiet cilvēkiemTas atgriezīs visus mūsu kartē esošos cilvēkus (people.values ​​()). Tam nav lielu komplikāciju.

addPersonTo izmanto, lai pievienotu personu mūsu kolekcijai, jūs varat redzēt, ka mūsu rīcībā esošais parametrs ir atzīmēts @RequestBody, ir tas, ko mēs saņemam no klienta (pieprasījuma pamatteksta). Anotācija

 @ResponseStatus (HttpStatus.CREATED)
Ir iestatīts atgriezt 201 kā atbildes kodu. Ķermenī var redzēt, kā katru reizi, kad to sauc par id, palielinās par vienu, lai tas būtu unikāls, un mēs to piešķiram personai, tad mēs to pievienojam kartei un visbeidzot funkcijas atbildes struktūra ir tāda pati persona.

getPersonPieprasītā persona tiks atgriezta mums, izmantojot ID. Šeit mums ir, ka funkcija atgriežas

 ResponseEntity
Tas ir tāpēc, lai atgrieztos a Labi un persona gadījumā, ja ir vai a NAV ATRASTS. Parametrs šeit ir atzīmēts ar @PathVariable, šim parametram būs vērtība {id} ko redzat vietnē RequestMapping un ko mēs ievietojām vietrādī URL, piemēram, / people / 1 izsauc šo funkciju ar ID 1.

PiezīmeJūs varat ievietot RequestMapping anotāciju tieši virs klases, kā parādīts zemāk:

 @RestController @RequestMapping ("/ people") publiskās klases PersonaController {…}
Ja jūs to darāt, jūs izvairīsities no cilvēku atkārtošanas katrā metodē un varat vienkārši ievietot šo:
 @RequestMapping (vērtība = "/", metode = RequestMethod.GET) 
Ja ir maz metožu, tas var nebūt tā vērts, bet daudziem tas noteikti ir labākais risinājums.

Mēs esam pabeiguši šo mazo API.

4. Kā vadīt projektu
Lai palaistu projektu, atlasiet savu projektu, izvēlņu joslā zaļā aplī ieraudzīsiet baltu trīsstūri (parastais skrējiens elipsē), noklikšķiniet uz mazā melnā trīsstūra labajā pusē, dodieties uz Rūnas un noklikšķiniet uz Pavasara sāknēšanas lietotne.

PALIELINĀT

[color = # a9a9a9] Noklikšķiniet uz attēla, lai to palielinātu [/ color]

Tagad, ja vēlaties paplašināt piemēru, iesaku pievienot pieprasījumu apkalpošanas metodes PUT Y DZĒST, jums būs jāzina tās personas ID, kuru vēlaties modificēt, tāpēc jūs to saņemsit tāpat kā pēdējā funkcijā, un PUT jums arī būs jānosūta dati, kā mēs to darījām funkcijā POST.

Ja tu vēlies pārbaudiet savu REST API bez nepieciešamības programmēt klientu pieprasījumu iesniegšanai jūs varat izmantot pastnieku, tas ir Google Chrome spraudnis:

Šeit jūs varat izvēlēties vēlamo pieprasījuma veidu, aizpildīt galvenes un pamattekstu, kas jānosūta, ja tas prasa autentifikāciju utt. Tā ir ļoti pilnīga programma.

PALIELINĀT

[color = # a9a9a9] Noklikšķiniet uz attēla, lai to palielinātu [/ color]

Piemēram, saņemt pieprasījumu, lai visi API esošie cilvēki darbotos lokālajā saimē un klausītos 80. portā:

Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave