API para gerenciamento de laboratórios e exames permite realizar CRUD para exame e laboratório, associar um exame a um laboratório, desassociar um exame de um laboratório e listar todos os laboratórios associados a um exame através da busca por nome do exame.
O projeto foi criado com Spring Boot na linguagem de programação Java com BD MySQL, utilizando Spring Data JPA e o gerenciador de dependência Maven.
O projeto está divido nas seguintes camadas:
main:
- Entidade
- Repositório
- Serviço
- Controle
- DTO
- Converte
- Exceção
- Clonar o projeto
- Ter instalado o BD MySQL
- Configurar no aplication.properties a conexão do BD
- Executar no terminal o comando:
mvn spring-boot:run
- Chamar os endpoint.
O sistema possui os endpoint abaixo:
POST api/v1/exames
: Requisita o cadastro do exame que é enviado no corpo da requisição. Exemplo do corpo da requisição para Cadastro de Exame
{
"nome": "Hemograma",
"tipo": "ANALISE_CLINICA"
}
GET api/v1/exames
: Requisita todos os exames cadastrados na aplicação.
*Não possui corpo na requisição*
GET api/v1/exames/{id}
: Requisita os dados do exame do id informado na URL.
*Não possui corpo na requisição*
PUT api/v1/exames/{id}
: Requisita a atualização do id informado na URL com os novos dados enviado no corpo da requisição. Exemplo do corpo da requisição para Atualizar o Exame
{
"nome": "Hemograma",
"tipo": "ANALISE_CLINICA",
"status": "INATIVO"
}
DELETE api/v1/exames/{id}
: Requisita a remoção lógica do exame informado pelo id na URL (Remoção Lógica = Inativar o status do exame).
*Não possui corpo na requisição*
POST api/v1/laboratorios
: Requisita o cadastro do laboratório que é enviado no corpo da requisição. Exemplo do corpo da requisição para Cadastro de Laboratório
{
"nome": "Laboratório Sabin",
"endereco": "São José dos Campos"
}
GET api/v1/laboratorios
: Requisita todos os laborátorios cadastrados na aplicação.
*Não possui corpo na requisição*
7.1. GET api/v1/laboratorios?nome=
: Requisita todos os laborátorios associados ao nome do exame passado na URL.
Para buscar através do nome do exame é necessário passar o paramentro na URL.
*Não possui corpo na requisição*
GET api/v1/laboratorios/{id}
: Requisita os dados do id do laboratório informado na URL.
*Não possui corpo na requisição*
PUT api/v1/laboratorios/{id}
: Requisita a atualização do id do laboratório informado na URL com os novos dados enviados no corpo da requisição. Exemplo do corpo da requisição para Atualizar o Laboratório
{
"nome": "Laboratório GQS",
"endereco": "Santos",
"status": "INATIVO"
}
DELETE api/v1/laboratorios/{id}
: Requisita a remoção lógica do laboratório informado pelo id na URL (Remoção Lógica = Inativar o status do laboratório).
*Não possui corpo na requisição*
POST api/v1/exames/{id}/laboratorios
: Requisita a associação do id do exame informado na URL com o id do laboratório informado no corpo da requisição. Exemplo do corpo da requisição para Associar um Exame a um Laboratório
{
"idLaboratorio": 2
}
DELETE api/v1/exames/{id}/laboratorios
: Requisita a desassociação do id do exame informado na URL com o id do laboratório informado no corpo da requisição. Exemplo do corpo da requisição para Desassociar um Exame de um Laboratório
{
"idLaboratorio": 2
}