O que é REST
Em 2000, Roy Fielding propôs a Transferência de Estado Representacional (REST) como uma abordagem de arquitetura para criar serviços Web. REST é um estilo arquitetural para a criação de sistemas distribuídos com base em hipermídia. A REST é independente de qualquer protocolo subjacente e não está necessariamente ligada a HTTP. No entanto, as implementações mais comuns de REST usam HTTP como o protocolo de aplicativo, e este guia foca a criação de APIs REST para HTTP.
Uma vantagem principal do REST sobre HTTP é que ele usa padrões abertos e não vincula a implementação da API ou os aplicativos cliente a nenhuma implementação específica. Por exemplo, um serviço Web REST poderia ser escrito em ASP.NET, e aplicativos cliente podem usar qualquer linguagem ou o conjunto de ferramentas que possa gerar solicitações HTTP e analisar respostas HTTP.
Fonte: https://docs.microsoft.com/pt-br/azure/architecture/best-practices/api-design
Spring Framework / Spring MVC
O Spring Framework é um framework de aplicação de código-fonte aberto popular que pode facilitar o desenvolvimento do Java EE. Ele consiste em um contêiner, um framework para gerenciar componentes, e um conjunto de serviços de snap-in para interfaces de usuário, transações e persistência da Web. Uma parte do Spring Framework é o Spring Web MVC, um framework MVC extensível para criação de aplicações Web.
Fonte: https://netbeans.org/kb/docs/web/quickstart-webapps-spring_pt_BR.html
Spring Boot
"O objetivo do Spring Boot é fornecer um conjunto de ferramentas para a construção rápida de aplicativos Spring que sejam fáceis de configurar."
Fonte: https://www.ibm.com/developerworks/br/library/j-spring-boot-basics-perry/index.html
Outros conceitos JAVA importantes:
Java™ Persistence API (JPA): fornece um mecanismo para gerenciar a persistência e mapeamento relacional de objeto e funções para as especificações de EJB. A especificação JPA define o mapeamento relacional de objetos internamente, em vez de depender das implementações de mapeamento específicas do fornecedor. A JPA está baseada no modelo de programação Java que se aplica aos ambientes Java EE, mas a JPA pode funcionar em um ambiente Java SE para teste das funções do aplicativo.
Hibernate: O Hibernate é o framework que fornece ferramentas para o mapeamento relacional de objeto (ORM). Basicamente, implementa a persistência e mapeamento relacional de objeto especificado pela JPA.
Fonte: https://netbeans.org/kb/docs/java/hibernate-java-se_pt_BR.html
Criando API RESTful com Spring Boot - InteliJJ
Dica: Para este roteiro, acompanhe também o conteúdo: Dicionário de anotações Java/Spring
Acesse o site: https://start.spring.io/
Configure um novo projeto, conforme exemplo abaixo:
Para este exemplo, adicione as dependências Spring Web Starter, JPA e H2
Clique no botão "Generate the project" para baixar o projeto já configurado
Descompacte-o o projeto...
Agora, será preciso importar este projeto no IntelliJ;
Abra o IntelliJ e vá na opção: Open
Logo em seguida, selecione o caminho do seu projeto descompactado
Espere o IntelliJ carregar todas as dependências do projeto...
Ao final do carregamento, no pacote raiz da aplicação, crie um novo pacote com o sufixo controller
Após a criação do pacote, crie uma nova classe neste novo pacote, também com sufixo Controller
Nesta classe Controller, adicione a implementação, conforme exemplo abaixo:
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class SpringBootController {
@RequestMapping(value = "/teste", method = RequestMethod.GET)
public String get() {
return "Hello World!";
}
}
Execute sua aplicação e veja o resultado!
Obs: Caso sua aplicação ainda não esteja apta a ser executada, siga os procedimentos abaixo:
Clique na ícone +
Selecione a opção Application
Escreva o nome da sua classe principal. ex.: DemoApplication
Execute sua aplicação e veja o resultado!
Acesse o link pelo navegador: http://localhost:8080/teste