Как сделать REST API с помощью SpringMVC на Java

{title}

Из этого туториала вы узнаете, как создать краткий REST API на Java с использованием SpringMVC . Мы увидим инструкции GET и POST, операции DELETE и PUT должны быть выполнены для практики. Прежде чем начать, я рекомендую загрузить Eclipse STS, хорошую IDE для программирования на Spring, что позволяет нам очень легко создавать наши проекты:

СКАЧАТЬ ЗАТМЕНИЕ СТС

примечание

У вас должна быть установлена ​​Java, если вы выбираете версию 1.8 лучше.

Некоторые общие вещи, которые нужно иметь в виду

  • У нас есть контроллер, который отвечает за ответы на запросы, вид контроллера должен быть указан с помощью @RestController .
  • Для каждого URL мы должны реализовать метод. Каждый метод должен идти с аннотацией @RequestMapping с обслуживаемым URL-адресом и методом запроса, а также будет возвращать нужный объект.

Теперь давайте посмотрим на пример, в нем у нас будет класс Persona и контроллер для персонажа PersonaController.

1. Запустите проект
Мы открываем STS и даем новый проект « Spring Project Starter », настраиваем параметры и имя и даем Next, я оставлю его, как вы можете видеть на следующем рисунке:

{title}

[color = rgb (169, 169, 169)] Нажмите на изображение, чтобы увеличить [/ color]

На следующем экране, который появится, вы должны выбрать опции, которые мы будем использовать, мы оставим все без изменений, и мы дадим Finish, и у нас будет создан проект, у нас будет следующая структура (Обратите внимание, что я уже создал 2 класса, которые будем использовать, а захват не из стс)

{title}

Мы увидим, что в src / main / java внутри пакета уже есть класс, который содержит следующий код:

 @SpringBootApplication открытый класс ExampleApApplication {открытый статический 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; личное строковое имя; частный возраст; public Person () {} public Person (Строковое имя, int age) {super (); this.name = имя; этот возраст = возраст; } public String getName () {возвращаемое имя; } public void setName (String name) {this.name = name; } public int getEdad () {вернуть возраст; } public void set Age (int e) {age = e; } public long getId () {return id; } public void setId (long id) {this.id = id; }} 
Этот класс не сложен для понимания, все, что вам нужно знать, это то, что нам нужны get и set каждого атрибута, а также конструктор без параметров, поскольку они будут использоваться контроллером, поэтому мы будем избегать работы со многими параметрами, и Spring будет внедрять их и создать объект.

3. Класс PersonaController
Опять же, в качестве первой части приведен код, а затем объяснение.

 @RestController открытый класс PersonaController {private Map people = new ConcurrentHashMap (); приватный длинный идентификатор = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePersonas () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) public Person addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsed); people.put (idUsado, p); возврат р; } @RequestMapping (value = "/ people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Person p = people.get (id); if (p! = null) возвращает новый ResponseEntity (p, HttpStatus.OK); вернуть новый ResponseEntity (HttpStatus.NOT_FOUND); }} 
Поскольку мы не собираемся использовать базу данных, мы создаем карту, если бы у нас была база данных, она была бы заменена ее хранилищем, и переменная idUsado не была бы необходима, но цель добавления учебного пособия не является целью руководства.
В аннотации RequestMapping мы видим, что у нас также есть метод, по умолчанию это GET, поэтому в этих методах нет необходимости добавлять его, но это не повредит .

$config[ads_text5] not found

У нас есть 3 метода.
дай мне людей

Что вы собираетесь сделать, это вернуть всех людей, которых мы имеем на нашей карте ( people.values ​​() ). Это не имеет серьезных осложнений.

addPersona

Он используется для добавления человека в нашу коллекцию, вы можете видеть, что наш параметр помечен @RequestBody, это то, что мы получаем от клиента (тело запроса). аннотирование

 @ResponseStatus (HttpStatus.CREATED) 
Он настроен на возврат 201 в качестве кода ответа. В теле вы можете видеть, как каждый раз, когда он вызывается, идентификатор увеличивается на единицу, так что он уникален, и мы назначаем его человеку, затем добавляем его на карту, и, наконец, тело ответа функции - это тот же человек.

getPersona

Мы вернем запрошенное лицо через идентификатор. Здесь у нас есть функция возврата

 ResponseEntity 
Это так, чтобы вернуть ОК и человека, если он существует или НЕ НАЙДЕН . Параметр здесь помечен @PathVariable, этот параметр будет иметь значение {id}, которое вы видите в RequestMapping, и это то, что мы вставили в URL, например, / people / 1 вызывает эту функцию с идентификатором в 1.

примечание

Аннотацию RequestMapping можно разместить чуть выше класса, как я покажу ниже:

 @RestController @RequestMapping ("/ people") открытый класс PersonaController {...} 
Если вы сделаете это, вы не будете повторять людей в каждом методе и можете просто указать следующее:
 @RequestMapping (value = "/", method = RequestMethod.GET) 
Если есть несколько методов, это может не стоить того, но для многих это, безусловно, лучший вариант.

Ну, мы закончили этот маленький API.

4. Как выполнить проект
Чтобы выполнить проект, выберите ваш проект, в строке меню вы увидите белый треугольник в зеленом круге (обычный прогон по эллипсу), нажмите на маленький черный треугольник справа, перейдите к Run As и нажмите на приложение Spring Boot .

{title}

[color = # a9a9a9] Нажмите на изображение, чтобы увеличить [/ color]

Теперь, если вы хотите расширить пример, я рекомендую добавить методы для удовлетворения запросов PUT и DELETE, вам нужно будет знать идентификатор человека, который нужно изменить, чтобы вы получили его, как в последней функции, а в PUT вам также нужно будет отправить данные, как мы это сделали. в функции POST.

Если вы хотите проверить свой REST API без необходимости программирования клиента, который отправляет запросы, вы можете использовать Postman, это плагин Google Chrome:

{title}

Здесь вы можете выбрать тип запроса, заполнить заголовки и текст сообщения, если требуется проверка подлинности и т. Д. Это очень полная программа.

{title}

[color = # a9a9a9] Нажмите на изображение, чтобы увеличить [/ color]

Например, запрос get, чтобы заставить всех людей в API работать на localhost и прослушивать порт 80:

$config[ads_text5] not found

{title}

  • 0