O API RESTful - Guia prático para iniciantes é um e-book destinado a todos que desejam aprender a construir sua primeira API RESTful. Estruturado com explicações acessíveis, o material é dividido em 4 módulos, otimizando o processo de aprendizado. Os tópicos abordados abrangem desde os conceitos básicos até a implementação prática, proporcionando uma compreensão abrangente. Ao longo do guia, exploramos aspectos cruciais, como a configuração do ambiente de desenvolvimento, operações CRUD e a integração com bancos de dados. As explicações são claras e complementadas por exemplos relevantes, capacitando os leitores a desenvolverem suas próprias APIs com confiança.
Este repositório contém todo o código desenvolvido no e-book, que pode ser acessado aqui.
Para ilustrar os conceitos principais de uma REST API com Spring Boot, nós vamos criar uma aplicação simples de To-Do List. Nesta aplicação, teremos duas entidades principais: Tarefa e Usuario.
O diagrama de entidade-relacionamento abaixo mostra a relação entre essas entidades.
A aplicação To-Do List permitirá criar, atualizar, deletar e listar tarefas e usuários. Nossa API terá os seguintes endpoints:
POST /usuarios: cria um usuário
O body da requisição deverá ser:
{
"nome": "Edu"
}O retorno deve ser 201 em caso de sucesso e o body de resposta deve ser o próprio objeto criado:
{
"id": 1,
"nome": "Edu",
"tarefas": []
}PUT /usuarios/{id}: modifica um usuário
Devemos passar o id do usuário a ser modificado e o body da requisição deve conter os novos dados:
{
"nome": "Ana"
}Retorna 200 em caso de sucesso e o objeto criado.
DELETE /usuarios/{id}: remove um usuário
Devemos passar o id do usuário a ser excluído e um body vazio. Retorna 204 em caso de sucesso e 404 caso o não exista o id.
GET /usuarios: retorna todos os usuários criados
Retorna 200 e a lista de usuários criados. Caso não exista usuários cadastrados, retorna uma lista vazia.
POST /tarefas: cria uma tarefa.
O body da requisição deverá ser:
{
"descricao": "Desenvolver uma API",
"usuario": {
"id": 1
}
}Deve conter a descrição da tarefa e o id do usuário associado à ela.
O retorno deve ser 201 em caso de sucesso e o body de resposta deve ser o próprio objeto criado:
{
"id": 1,
"descricao": "Desenvolver uma API"
}Retorna 500 caso o id do usuário não exista. PUT /tarefas/{id}: modifica uma tarefa
Devemos passar o id da tarefa a ser modificada e o body da requisição deve conter os novos dados:
{
"descricao": "Desenvolver uma API RESTful",
"usuario": {
"id": 1
}
}Retorna 200 em caso de sucesso e o objeto criado.
DELETE /tarefas/{id}: remove uma tarefa
Devemos passar o id da tarefa a ser excluída e um body vazio. Retorna 204 em caso de sucesso e 404 caso o não exista o id.
GET /tarefas: retorna todos as tarefas criadas
Retorna 200 e a lista de tarefas criadas. Caso não exista tarefas cadastradas, retorna uma lista vazia.
Para executar o projeto, certifique-se de ter os seguintes pré-requisitos:
- Java Development Kit (JDK) instalado.
- IDE de sua escolha (recomendamos o VSCode, IntelliJ IDEA ou Eclipse).
- Maven ou Gradle instalado para gerenciamento de dependências.
-
Clone o repositório
git clone https://github.com/eduardoAssuncao/API-Restful-com-Spring-Boot.git
-
Com o projeto aberto, execute o comando no terminal
mvn spring-boot:run
Caso o comando não funcione, você poderá utilizar o run java do VScode
-
Você pode utilizar o swagger:
http://localhost:8080/swagger-ui/index.htmlOu utilizar o Postman para realizar as requisições.
As contribuições são o que torna a comunidade de código aberto um lugar incrível para aprender, inspirar e criar. Qualquer contribuição que você fizer será muito apreciada.
Se você tiver alguma sugestão que possa melhorar o projeto, faça um fork do repositório e crie uma solicitação pull. Você também pode simplesmente abrir um problema com a tag "aprimoramento". Não se esqueça de dar uma estrela para o projeto! Mais uma vez, obrigado!
- Faça o fork do projeto
- Crie sua ramificação de recurso (
git checkout -b feature/AmazingFeature) - Faça o commit de suas alterações (
git commit -m 'Add some AmazingFeature') - Faça push para a ramificação (
git push origin feature/AmazingFeature) - Abra uma solicitação pull
Distribuído sob a licença CreativeCommons. Consulte LICENSE.txt para obter mais informações.
Compartilhar — copiar e redistribuir o material em qualquer suporte ou formato.
Adaptar — remixar, transformar, e criar a partir do material.
O licenciante não pode revogar estes direitos desde que você respeite os termos da licença.
Atribuição - Você deve dar o crédito apropriado , prover um link para a licença e indicar se mudanças foram feitas . Você deve fazê-lo em qualquer circunstância razoável, mas de nenhuma maneira que sugira que o licenciante apoia você ou o seu uso.
NãoComercial - Você não pode usar o material para fins comerciais .
CompartilhaIgual - Se você remixar, transformar, ou criar a partir do material, tem de distribuir as suas contribuições sob a mesma licença que o original.
Sem restrições adicionais - Você não pode aplicar termos jurídicos ou medidas de caráter tecnológico que restrinjam legalmente outros de fazerem algo que a licença permita.
- Ana Paula Rabelo de Freitas
- Eduardo Assunção de Sousa
- Halex Miranda
- Regiana Barbosa
- Gabriel Portela

