Skip to content

eduardoAssuncao/API-Restful-com-Spring-Boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API RESTful

API RESTful com Spring Boot

License: CC BY-NC-SA 4.0

Guia prático para iniciantes

Reportar Erro · Contribuir

Sobre o projeto

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.

Descrição do projeto

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.

Tecnologias Utilizadas

  • Spring Boot
  • MySQL
  • Postman
  • Apache Maven
  • Visual Studio Code
  • GitHub

Começando

Pré-requisitos

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.

Instalação

  1. Clone o repositório

    git clone https://github.com/eduardoAssuncao/API-Restful-com-Spring-Boot.git
  2. 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

  3. Você pode utilizar o swagger:

    http://localhost:8080/swagger-ui/index.html

    Ou utilizar o Postman para realizar as requisições.

Contribuição

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!

  1. Faça o fork do projeto
  2. Crie sua ramificação de recurso (git checkout -b feature/AmazingFeature)
  3. Faça o commit de suas alterações (git commit -m 'Add some AmazingFeature')
  4. Faça push para a ramificação (git push origin feature/AmazingFeature)
  5. Abra uma solicitação pull

Licença

Distribuído sob a licença CreativeCommons. Consulte LICENSE.txt para obter mais informações.

General badge

Você tem o direito de:

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.

De acordo com os termos seguintes:

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.

Contatos

  • Ana Paula Rabelo de Freitas

GitHub General badge

  • Eduardo Assunção de Sousa

GitHub General badge

  • Halex Miranda

GitHub General badge

  • Regiana Barbosa

GitHub General badge

  • Gabriel Portela

GitHub General badge

About

API Restful com Spring boot

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages