Skip to content

EliasGabriel1/api-spring-boot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

api-spring-boot

Aqui vai uma breve documentação sobre o projeto:

Este é um exemplo de classe Java que utiliza o framework Spring Boot para criar um aplicativo web. A classe é chamada de "ApplicationTutorial" e está localizada no pacote "com.company.nomeprojeto". Abaixo segue a documentação dos componentes principais da classe:

@SpringBootApplication

A anotação @SpringBootApplication é uma combinação de várias outras anotações do Spring, como @Configuration, @EnableAutoConfiguration e @ComponentScan. Ela indica que a classe é uma classe de configuração do Spring Boot que permite habilitar recursos automáticos, como detecção de classes e configuração automática de bancos de dados.

public static void main(String[] args)

Este é o método principal da aplicação, responsável por iniciar o aplicativo. Ele recebe um array de argumentos em String[] args e chama o método SpringApplication.run(ApplicationTutorial.class, args) para iniciar a aplicação.

SpringApplication.run(ApplicationTutorial.class, args)

Este método estático é usado para iniciar a aplicação Spring Boot. Ele recebe como parâmetro a classe principal da aplicação e os argumentos do método main(). Quando executado, ele inicia um contêiner de aplicativos e carrega todos os componentes necessários para a execução da aplicação.

O código representa uma classe Java chamada TarefasAPI, que implementa uma API RESTful para gerenciamento de tarefas. Esta classe está localizada no pacote com.company.nomeprojeto.tarefas.api. A seguir, serão descritos os principais elementos dessa classe:

@Controller

A anotação @Controller é uma das anotações do Spring Framework que indica que a classe é um controlador. O objetivo desta classe é gerenciar as solicitações HTTP e retornar as respostas adequadas.

@RequestMapping(value = "/tarefas", produces = MediaType.APPLICATION_JSON_VALUE)

A anotação @RequestMapping é uma anotação do Spring que mapeia solicitações HTTP para métodos em controladores específicos. Neste caso, ela mapeia todas as solicitações para /tarefas. Além disso, a anotação produces é usada para indicar o tipo de mídia que o controlador produz, neste caso, JSON.

@Autowired

A anotação @Autowired é uma anotação do Spring que permite a injeção de dependência automática. Neste caso, é usado para injetar uma instância de TarefasFacade no controlador.

@PostMapping

A anotação @PostMapping é uma anotação do Spring que indica que o método trata solicitações HTTP POST. Neste caso, o método criar é acionado quando uma solicitação POST é feita para /tarefas. O parâmetro @RequestBody indica que o método espera um corpo de solicitação JSON que pode ser convertido em um objeto TarefaDTO.

@PutMapping

A anotação @PutMapping é uma anotação do Spring que indica que o método trata solicitações HTTP PUT. Neste caso, o método atualizar é acionado quando uma solicitação PUT é feita para /tarefas/{tarefaId}. O parâmetro @PathVariable indica que o valor de tarefaId é passado na URL.

@GetMapping

A anotação @GetMapping é uma anotação do Spring que indica que o método trata solicitações HTTP GET. Neste caso, o método getAll é acionado quando uma solicitação GET é feita para /tarefas. Ele retorna uma lista de todas as tarefas existentes.

@DeleteMapping

A anotação @DeleteMapping é uma anotação do Spring que indica que o método trata solicitações HTTP DELETE. Neste caso, o método deletar é acionado quando uma solicitação DELETE é feita para /tarefas/{tarefaId}. O parâmetro @PathVariable indica que o valor de tarefaId é passado na URL.

TarefaDTO

A classe TarefaDTO é um objeto de transferência de dados (DTO) utilizado para representar as tarefas no recurso de tarefas do projeto.

Atributos

  • id (tipo Long): identificador da tarefa.
  • titulo (tipo String): título da tarefa.
  • descricao (tipo String): descrição da tarefa.

Métodos

  • getId(): retorna o identificador da tarefa.
  • setId(Long id): define o identificador da tarefa.
  • getTitulo(): retorna o título da tarefa.
  • setTitulo(String titulo): define o título da tarefa.
  • getDescricao(): retorna a descrição da tarefa.
  • setDescricao(String descricao): define a descrição da tarefa.

Essa classe é utilizada para transferir informações entre diferentes camadas da aplicação e para representar as tarefas no formato JSON durante as operações de criação, atualização e consulta realizadas pela API REST implementada no projeto.

TarefasFacade.java

Este arquivo está localizado em C:\Users\user\Desktop\api-spring-boot\src\main\java\com\company\nomeprojeto\tarefas\facade\TarefasFacade.java e contém a classe TarefasFacade que é uma classe de fachada (facade) responsável por fornecer uma camada de abstração entre a lógica de negócios e a camada de controle da API de tarefas.

A classe TarefasFacade contém as seguintes funções:

  • criar: cria uma nova tarefa a partir de um objeto TarefaDTO, atribui um id único e adiciona ao mapa de tarefas;
  • atualizar: atualiza uma tarefa existente com um objeto TarefaDTO e um id de tarefa existente;
  • getById: recupera uma tarefa existente a partir de um id de tarefa;
  • getAll: recupera todas as tarefas existentes;
  • delete: remove uma tarefa existente a partir de um id de tarefa.

A classe TarefasFacade é marcada com a anotação @Service do Spring Framework, indicando que é um componente de serviço que deve ser gerenciado pelo contêiner do Spring. Além disso, a classe contém um mapa estático tarefas que é usado para armazenar todas as tarefas gerenciadas pela fachada.