Como fazer uma API REST com SpringMVC em Java

Índice

Este tutorial vai ensinar como fazer uma API REST curta em Java, usando SpringMVC. Veremos as instruções GET e POST, as operações DELETE e PUT, seria conveniente para você praticá-las. Antes de começar, recomendo baixar o Eclipse STS, um bom IDE para programação no Spring, que torna muito mais fácil para nós criar nossos projetos:

BAIXAR ECLIPSE STS

ObservaçãoVocê deve ter o java instalado, se escolher a versão 1.8 melhor.

Algumas coisas gerais para se manter em mente

  • Temos um controlador, que se encarrega de atender as solicitações que são feitas, a classe que atua como controlador deve ser anotada com @RestController.
  • Para cada URL, temos que implementar um método. Cada método terá que ir com a anotação @RequestMapping com a URL a que é atendida e o método da solicitação e também retornará o objeto desejado.

Agora veremos um exemplo, nele teremos uma classe Person e um controlador para a pessoa PersonController.

1. Comece o projeto
Abrimos STS e damos um novo projeto "Spring Project Starter”, Configuramos as opções e o nome e damos Próximo, Vou deixar como você pode ver na imagem a seguir:

PROLONGAR

[color = rgb (169,169,169)] Clique na imagem para ampliar [/ color]

Na próxima tela que irá aparecer, devemos escolher as opções que vamos usar, vamos deixar tudo intocado e clicamos Terminar e já temos o projeto criado, teremos a seguinte estrutura (Note que já criei as 2 classes que vamos usar, e a captura não é do STS):

Veremos isso em src / main / java Dentro do pacote já foi criada uma classe e ela contém o seguinte código:

 @SpringBootApplication public class ExampleApiApplication {public static void main (String [] args) {SpringApplication.run (Application.class, args); }} 
Deixamos esta aula como está, isso nos ajuda a seguir nosso exemplo. Agora vamos para a aula pom.xml e verificamos se temos o seguinte código, do contrário, simplesmente o adicionamos:
 org.springframework.boot spring-boot-starter-parent 1.3.3.RELEASE org.springframework.boot spring-boot-starter-web 
ObservaçãoVocê pode ter que atualizar seu projeto com o maven ao salvar esse arquivo, no STS você tem a opção de fazer isso (ALT + F5).

Agora vamos ver a aparência das classes que criamos.

2. Classe pessoal
Primeiro colocamos o código e depois é explicado.

 classe pública Perona {id longa privada = -1; nome da string privada; idade privada; public Person () {} public Person (String name, int age) {super (); this.name = nome; this.age = idade; } public String getName () {nome de retorno; } public void setName (String name) {this.name = name; } public int getAge () {idade de retorno; } public void setAge (int e) {age = e; } public long getId () {id de retorno; } public void setId (id longo) {this.id = id; }} 
Esta classe não é difícil de entender, tudo que você precisa saber é que precisamos do get e set de cada atributo e também do construtor sem parâmetros, já que eles serão usados ​​pelo controlador, então evitaremos trabalhar com muitos parâmetros e Spring irá injetá-los e criar o objeto.

3. Classe PersonaController
Novamente, já que a primeira parte é o código e depois a explicação.

 @RestController public class PersonController {private Map people = new ConcurrentHashMap (); private Long usedID = 0; @RequestMapping (value = "/ people", method = RequestMethod.GET) public Collection damePeople () {return people.values ​​(); } @RequestMapping (value = "/ people", method = RequestMethod.POST) @ResponseStatus (HttpStatus.CREATED) public Person addPersona (@RequestBody Person p) {idUsado ++; p.setId (idUsado); pessoas.put (idUsado, p); return p; } @RequestMapping (value = "/ people / {id}", method = RequestMethod.GET) public ResponseEntity getPersona (@PathVariable long id) {Person p = people.get (id); if (p! = null) retorna novo ResponseEntity (p, HttpStatus.OK); retornar novo ResponseEntity (HttpStatus.NOT_FOUND); }}
O que não vamos usar um banco de dados Criamos um mapa, se tivéssemos um banco de dados este seria substituído pelo seu repositório, e a variável idUsado não seria necessária, mas adicionar DB não é o objetivo do tutorial.
Dentro da anotação RequestMapping Vemos que também temos o método, por padrão é GET, então nesses métodos não seria necessário adicioná-lo, mas não faz mal.

Temos 3 métodos
me dê pessoasO que ele fará é retornar todas as pessoas que temos em nosso mapa (people.values ​​()) Não tem nenhuma complicação importante.

addPersonÉ usado para adicionar uma pessoa à nossa coleção, você pode ver que o parâmetro que temos é anotado com @RequestBody, é o que recebemos do cliente (o corpo da solicitação). A anotação

 @ResponseStatus (HttpStatus.CREATED)
Ele é definido para retornar um 201 como um código de resposta. Pode-se ver no corpo como cada vez que é chamado de id aumenta em um, de modo que é único e atribuímos à pessoa, depois o adicionamos ao mapa e finalmente o corpo de resposta da função é o mesmo pessoa.

getPersonA pessoa solicitada nos será devolvida através do id. Aqui temos que a função retorna

 ResponseEntity
Isso é assim para devolver um OK e a pessoa no caso de haver ou um NÃO ENCONTRADO. O parâmetro aqui é anotado com @PathVariable, esse parâmetro terá o valor de {eu ia} que você vê em RequestMapping e é o que colocamos na URL, por exemplo / people / 1 chama essa função com o id em 1.

ObservaçãoVocê pode colocar a anotação RequestMapping logo acima da classe, como mostro a seguir:

 @RestController @RequestMapping ("/ people") public class PersonaController {…}
Se você fizer isso, você evitará repetir pessoas em cada método e pode simplesmente colocar o seguinte:
 @RequestMapping (value = "/", method = RequestMethod.GET) 
Se houver poucos métodos, pode não valer a pena, mas para muitos é certamente a melhor opção.

Bem, terminamos esta pequena API.

4. Como executar o projeto
Para executar o projeto, selecione o seu projeto, na barra de menu você verá um triângulo branco dentro de um círculo verde (a corrida usual na elipse), clique no pequeno triângulo preto à direita, vá para Runas e clique em Spring Boot App.

PROLONGAR

[color = # a9a9a9] Clique na imagem para ampliar [/ color]

Agora, se você quiser expandir o exemplo, recomendo adicionar os métodos para atender às solicitações POR Y EXCLUIR, você precisará saber o id da pessoa a modificar, para que o receba como na última função e em PUT também deverá enviar os dados como fizemos na função POST.

Se você quiser teste sua API REST sem ter que programar um cliente para fazer solicitações você pode usar carteiro, é um plug-in do Google Chrome:

Aqui você pode escolher o tipo de solicitação que deseja, preencher os cabeçalhos e o corpo que deve ser enviado, caso necessite de autenticação, etc. É um programa muito completo.

PROLONGAR

[color = # a9a9a9] Clique na imagem para ampliar [/ color]

Por exemplo, uma solicitação get para fazer com que todas as pessoas na API sejam executadas no localhost e escutem na porta 80:

Gostou e ajudou este tutorial?Você pode recompensar o autor pressionando este botão para dar a ele um ponto positivo

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave