Как да направите REST API с SpringMVC в Java

Съдържание

Този урок ще ви научи как да направите кратък REST API в Java, използвайки SpringMVC. Ще видим инструкциите GET и POST, операциите DELETE и PUT, би било удобно да ги направите за практика. Преди да започнете, препоръчвам да изтеглите Eclipse STS, добра IDE за програмиране през пролетта, което ни улеснява много в създаването на нашите проекти:

ИЗТЕГЛЕТЕ ECLIPSE STS

ЗабележкаТрябва да имате инсталиран java, ако изберете версия 1.8 по -добре.

Някои общи неща, които трябва да имате предвид

  • Имаме контролер, който отговаря за изпълнението на заявките, класът, който действа като контролер, трябва да бъде отбелязан с @RestController.
  • За всеки URL трябва да приложим метод. Всеки метод ще трябва да върви с анотацията @RequestMapping с URL адреса, на който е посетен, и метода на заявката и той също ще върне желания обект.

Сега ще видим пример, в него ще имаме клас Person и контролер за лицето PersonController.

1. Стартирайте проекта
Отваряме STS и даваме нов проект "Стартер за пролетен проект”, Конфигурираме опциите и името и даваме Следващия, Ще го оставя, както можете да видите на следното изображение:

Увеличете

[color = rgb (169,169,169)] Кликнете върху изображението, за да го увеличите [/ color]

В следващия екран, който ще се появи, трябва да изберем опциите, които ще използваме, ще оставим всичко недокоснато и щракваме завършек и вече имаме създаден проект, ще имаме следната структура (Обърнете внимание, че вече съм създал 2 класа, които ще използваме, а улавянето не е от STS):

Ще видим това през src / main / java Вътре в пакета вече е създаден клас и той съдържа следния код:

 @SpringBootApplication публичен клас ExampleApiApplication {публичен static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Оставяме този клас такъв, какъвто е, той ни помага да дадем пример. Сега да отидем на час pom.xml и проверяваме дали имаме следния код, ако не е, просто го добавяме:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
ЗабележкаМоже да се наложи да актуализирате проекта си с maven, когато запазвате този файл, в STS имате възможност да го направите (ALT + F5).

Сега ще видим класовете, които създаваме, как изглеждат.

2. Клас на човек
Първо поставяме кода и след това се обяснява.

 публичен клас Perona {private long id = -1; частно име на низ; частна международна възраст; публичен човек () {} публичен човек (име на низ, инт. възраст) {супер (); this.name = име; this.age = възраст; } обществен низ getName () {име на връщане; } public void setName (Име на низ) {this.name = name; } public int getAge () {възрастова възраст; } public void setAge (int e) {age = e; } публичен дълъг getId () {идентификатор за връщане; } public void setId (long id) {this.id = id; }} 
Този клас не е труден за разбиране, всичко, което трябва да знаете, е, че се нуждаем от get и set на всеки атрибут, а също и конструктора без параметри, тъй като те ще се използват от контролера, така че ще избегнем работа с много параметри и Spring ще ги инжектира и ще създаде обекта.

3. Клас PersonaController
Отново като първа част е кодът и след това обяснението.

 @RestController публичен клас PersonController {private Map people = new ConcurrentHashMap (); частно Дълго използван ID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) публична колекция damePeople () {връщане на people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) публично лице addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); people.put (idUsado, p); връщане p; } @RequestMapping (value = " / people / {id}", method = RequestMethod.GET) публичен ResponseEntity getPersona (@PathVariable long id) {Person p = people.get (id); if (p! = null) връща нов ResponseEntity (p, HttpStatus.OK); връщане на нов ResponseEntity (HttpStatus.NOT_FOUND); }}
Какво няма да използваме база данни Ние създаваме карта, ако имахме база данни, тя щеше да бъде заменена от нейното хранилище и променливата idUsado нямаше да е необходима, но добавянето на DB не е целта на урока.
Вътре в анотацията RequestMapping Виждаме, че имаме и метода, по подразбиране е GET, така че в тези методи не би било необходимо да го добавяме, но не боли.

Имаме 3 метода
дайте хораТова, което ще направи, е да върне всички хора, които имаме на картата си (people.values ​​()). Няма сериозни усложнения.

addPersonИзползва се за добавяне на човек в нашата колекция, можете да видите, че параметърът, който имаме, е анотиран @RequestBody, е това, което получаваме от клиента (тялото на заявката). Анотацията

 @ResponseStatus (HttpStatus.CREATED)
Той е настроен да връща 201 като код за отговор. Може да се види в тялото как всеки път, когато се нарича id се увеличава с едно, така че да е уникален и да го присвояваме на човека, след това го добавяме към картата и накрая тялото на отговора на функцията е същото човек.

getPersonПоисканото лице ще бъде върнато при нас чрез идентификационния номер. Тук имаме, че функцията се връща

 ResponseEntity
Това е така, за да се върне a добре и лицето в случай, че има или а НЕ НАМЕРЕН. Параметърът тук е отбелязан с @PathVariable, този параметър ще има стойност на {документ за самоличност} което виждате в RequestMapping и е това, което поставяме в URL адреса, например / people / 1 извиква тази функция с идентификатора в 1.

ЗабележкаМожете да поставите анотацията RequestMapping точно над класа, както показвам по -долу:

 @RestController @RequestMapping ("/ people") публичен клас PersonaController {…}
Ако направите това, ще избегнете повтарянето на хората във всеки метод и можете просто да поставите следното:
 @RequestMapping (стойност = "/", метод = RequestMethod.GET) 
Ако има малко методи, може да не си заслужава, но за мнозина това със сигурност е най -добрият вариант.

Е, завършихме този малък API.

4. Как да стартирате проекта
За да стартирате проекта, изберете вашия проект, в лентата с менюта ще видите бял триъгълник вътре в зелен кръг (обичайното изпълнение в elclipse), щракнете върху малкия черен триъгълник вдясно, отидете на Руни и кликнете върху Приложение Spring Boot.

Увеличете

[color = # a9a9a9] Кликнете върху изображението, за да го увеличите [/ color]

Сега, ако искате да разширите примера, препоръчвам да добавите методите за обслужване на заявки СЛАГАМ Y ИЗТРИЙ, ще трябва да знаете идентификационния номер на лицето, което да промените, така че ще го получите както в последната функция, а в PUT също ще трябва да изпратите данните, както направихме във функцията POST.

Ако искаш тествайте своя REST API без да се налага да програмирате клиент да прави заявки можете да използвате пощальон, това е плъгин за Google Chrome:

Тук можете да изберете желания тип заявка, да попълните заглавките и тялото, които трябва да бъдат изпратени, ако това изисква удостоверяване и т.н. Това е много пълна програма.

Увеличете

[color = # a9a9a9] Кликнете върху изображението, за да го увеличите [/ color]

Например заявка за получаване на всички хора в API, работещи на localhost и слушащи на порт 80:

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave