Jak vytvořit REST API s SpringMVC v Javě

Obsah

Tento tutoriál naučí jak vytvořit krátké REST API v Javě pomocí SpringMVC. Uvidíme pokyny GET a POST, operace DELETE a PUT, pro vás by bylo vhodné to udělat pro praxi. Před začátkem doporučuji stáhnout Eclipse STS, dobré IDE pro programování na jaře, velmi nám to usnadňuje vytváření našich projektů:

STÁHNOUT ECLIPSE STS

PoznámkaPokud zvolíte verzi 1.8 lepší, musíte mít nainstalovanou javu.

Několik obecných věcí, které je třeba mít na paměti

  • Máme správce, který má na starosti vyřizování požadavků, třídu, která funguje jako správce, je třeba poznamenat @RestController.
  • Pro každou adresu URL musíme implementovat metodu. Každá metoda bude muset jít s anotací @RequestMapping s adresou URL, na kterou je navštěvován, a způsobem požadavku a také vrátí požadovaný objekt.

Nyní uvidíme příklad, v němž budeme mít třídu Person a ovladač pro osobu PersonController.

1. Spusťte projekt
Otevíráme STS a dáváme nový projekt “Startér jarního projektu”Konfigurujeme možnosti a název a dáme dalšíNechám to tak, jak vidíte na následujícím obrázku:

ZVĚTŠIT

[color = rgb (169,169,169)] Kliknutím na obrázek zvětšíte [/ color]

Na další obrazovce, která se objeví, musíme vybrat možnosti, které použijeme, ponecháme vše nedotčené a klikneme Dokončit a již máme vytvořený projekt, budeme mít následující strukturu (Všimněte si, že jsem již vytvořil 2 třídy, které budeme používat, a zachycení není ze STS):

To uvidíme v src / hlavní / java Uvnitř balíčku je již vytvořena třída a obsahuje následující kód:

 @SpringBootApplication veřejná třída ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Necháme tuto třídu tak, jak je, pomáhá nám jít si příkladem. Pojďme nyní do třídy pom.xml a zkontrolujeme, zda máme následující kód, pokud není, jednoduše jej přidáme:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
PoznámkaPři ukládání tohoto souboru budete možná muset aktualizovat svůj projekt pomocí maven, ve STS máte možnost tak učinit (ALT + F5).

Nyní uvidíme třídy, které vytváříme, jak vypadají.

2. Osobní třída
Nejprve vložíme kód a poté je vysvětlen.

 veřejná třída Perona {private long id = -1; soukromé jméno řetězce; soukromý int věk; public Person () {} public Person (String name, int age) {super (); this.name = jméno; this.age = věk; } public String getName () {návratové jméno; } public void setName (Název řetězce) {this.name = name; } public int getAge () {návratový věk; } public void setAge (int e) {věk = e; } public long getId () {return id; } public void setId (long id) {this.id = id; }} 
Tuto třídu není těžké pochopit, vše, co musíte vědět, je, že potřebujeme získat a nastavit každý atribut a také konstruktor bez parametrů, protože je bude používat řadič, takže se vyhneme práci s mnoha parametry a Springem vloží je a vytvoří objekt.

3. Třída PersonaController
Opět jako první část je kód a poté vysvětlení.

 @RestController veřejná třída PersonController {private Map people = new ConcurrentHashMap (); private Long usedID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePeople () {return people.values ​​(); } @RequestMapping (hodnota = "/ lidé", metoda = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) veřejná osoba addPersona (@RequestBody Osoba p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); vrátit p; } @RequestMapping (hodnota = " / people / {id}", metoda = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Osoba p = people.get (id); if (p! = null) return new ResponseEntity (p, HttpStatus.OK); vrátit nový ResponseEntity (HttpStatus.NOT_FOUND); }}
Co nebudeme používat databázi Vytváříme mapu, pokud bychom měli databázi, byla by nahrazena jejím úložištěm a proměnná idUsado by nebyla nutná, ale přidání DB není cílem tutoriálu.
Uvnitř anotace Mapování požadavků Vidíme, že tu metodu také máme, standardně je GET, takže v těch metodách by nebylo nutné ji přidávat, ale nebolí to.

Máme 3 metody
dej mi lidiCo udělá, je vrátit všechny lidi, které máme na mapě (people.values ​​()). Nemá žádnou zásadní komplikaci.

addPersonSlouží k přidání osoby do naší sbírky, můžete vidět, že parametr, který máme, je opatřen poznámkami @RequestBody, je to, co dostáváme od klienta (tělo požadavku). Anotace

 @ResponseStatus (HttpStatus.CREATED)
Je nastaven tak, aby vrátil 201 jako kód odpovědi. Na těle je vidět, jak se pokaždé, když se nazývá id, zvětší o jedno, takže je jedinečné a přiřadíme ho osobě, pak ho přidáme na mapu a nakonec tělo reakce funkce je stejné osoba.

getPersonVyžádaná osoba nám bude vrácena prostřednictvím ID. Tady máme, že se funkce vrací

 ResponseEntity
Důvodem je návrat a dobře a osoba v případě, že existuje nebo a NENALEZENO. Parametr je zde opatřen poznámkami @PathVariable, tento parametr bude mít hodnotu {id} které vidíte v RequestMapping a je to, co jsme vložili do adresy URL, například / people / 1 volá tuto funkci s id v 1.

PoznámkaJak uvedu níže, můžete anotaci RequestMapping umístit přímo nad třídu:

 @RestController @RequestMapping ("/ people") veřejná třída PersonaController {…}
Pokud to uděláte, vyhnete se opakování lidí v každé metodě a můžete jednoduše uvést následující:
 @RequestMapping (hodnota = "/", metoda = RequestMethod.GET) 
Pokud existuje několik metod, nemusí to stát za to, ale pro mnohé je to určitě nejlepší volba.

Dokončili jsme toto malé API.

4. Jak spustit projekt
Chcete -li spustit projekt, vyberte svůj projekt, v liště nabídek uvidíte bílý trojúhelník uvnitř zeleného kruhu (obvyklý běh v zatmění), klikněte na malý černý trojúhelník vpravo, přejděte na Runy a klikněte na Aplikace Spring Boot.

ZVĚTŠIT

[color = # a9a9a9] Kliknutím na obrázek zvětšíte [/ color]

Pokud nyní chcete příklad rozšířit, doporučuji přidat metody k obsluze požadavků DÁT Y VYMAZAT, budete potřebovat znát ID osoby, kterou chcete upravit, takže ji obdržíte jako v poslední funkci a v PUT budete také muset odeslat data, jak jsme to udělali ve funkci POST.

Jestli chceš otestujte své REST API aniž byste museli klienta naprogramovat tak, aby zadával požadavky můžete použít pošťáka, je to plugin Google Chrome:

Zde si můžete vybrat požadovaný typ požadavku, vyplnit záhlaví a tělo, které je třeba odeslat, pokud to vyžaduje ověření atd. Je to velmi kompletní program.

ZVĚTŠIT

[color = # a9a9a9] Kliknutím na obrázek zvětšíte [/ color]

Například požadavek na získání všech lidí v API běžících na localhost a poslouchajících na portu 80:

Líbil se vám tento návod a pomohl mu?Autora můžete odměnit stisknutím tohoto tlačítka, čímž mu dáte kladný bod

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave