Skip to content

API implementada com Laravel para o desafio do LAIS.

Notifications You must be signed in to change notification settings

isaquekaio/api-laravel

Repository files navigation

desafio-api-laravel

Desafio Api Laravel

Ambiente de desenvolvimento

  • php:7.3
  • PostgreSQL 10
  • docker-compose

Pré requisito para roda o projeto: docker e docker-compose

Tutorial para instalação do docker no linux

Tutorial para instalar o docker-compose no linux

Passos para roda o projeto

Utilizar o sistema

  • Para baixar o projeto clique no botão Code de cor verde e em seguida clique em Download ZIP

  • Vá na pasta Download do seu computador, clique com o botão direito sobre o arquivo api-laravel-main e em seguida clique na opção extrair aqui

  • Abra o terminal e em seguida entre na pasta api-laravel-main com o comando cd api-laravel-main

Para roda o projeto

  • Dentro da pasta api-laravel-main, digite o seguinte comando:

docker-compose up -d

  • Em seguida, no terminal digite esse comando docker container exec -it lais-app bash para acessa ao container do projeto

  • Estando dentro do container, cole os seguintes comandos:

  • php artisan migrate --seed

  • php artisan passport:client --personal

Para testar o sistema

  • É necessario é uma ferramenta que possa ser utilizada para testar serviços RESTful, como exemplo o postman e o insomnia.

  • A documentação da API está nas duas tabelas a seguir.

  • Para ter acesso ao Módulo Gestão é necessário cadastrar um usuário e depois realizar o login através da rota localhost:8000/api/acesso

Documentação da API

Módulo Gestão

Grupo URL Verbo HTTP Campos para o ENVIO Exemplo de Retorno JSON Descrição
Autenticação localhost:8000/api/cadastro POST "name", "email", "password","password_confirmation" { "user": { "name": "Admin", "email": "admin@gmail.com", "updated_at": "2021-03-12T11:00:35.000000Z", "created_at": "2021-03-12T11:00:35.000000Z", "id": 1 }, "access_token": "eyJ0eXAiOiJKV1QiLC ..." } Cadastrando usuário
localhost:8000/api/acesso POST "email", "password" { "user": { "id": 1, "name": "Admin", "email": "admin@gmail.com", "email_verified_at": null, "created_at": "2021-03-12T11:00:35.000000Z", "updated_at": "2021-03-12T11:00:35.000000Z" }, "access_token": "eyJ0eXAiOiJKV1QiLCJh..." } Login do usuário no sistema
Doenças localhost:8000/api/doencas GET - { "doencas": [ { "id": 1, "nome": "Anemia de Fanconi" }, { "id": 2, "nome": "Anomalia de Ebstein" }, { "id": 3, "nome": "Arterite de Takayasu" }, ... Listar doenças
localhost:8000/api/doencas POST "nome" { "message": "Doença cadastrado!" } Cadastrando doença
localhost:8000/api/doencas/{id} PUT "nome" { "message": "Atualização feita com sucesso!" } Atualização dados de uma doença
Pacientes localhost:8000/api/pacientes GET - { "pacientes": [ { "id": 1, "nome": "Pedro da Silva", "data_nascimento": "2002-01-01", "sus": "111112288233333", "uf_id": 11, "municipio_id": 110001, "sexo_id": 1, "doencas": [] } ] } Listar os pacientes
localhost:8000/api/pacientes POST "nome", "data_nascimento", "sus", "sexo_id", "uf_id","municipio_id" { "message": "Paciente cadastrado com sucesso!" } Cadastrando paciente
localhost:8000/api/pacientes/{id} PUT "nome", "data_nascimento", "sus", "sexo_id", "uf_id","municipio_id" { "message": "Paciente Atualizado com sucesso!" } Atualizar os dados do paciente
localhost:8000/api/pacientes/{id}/doenca POST "doencas"[] { "message": "Doenças associada ao paciente" } Associar doenças ao paciente
localhost:8000/api/pacientes/{id}/desassociar_doenca POST "doencas"[] { "message": "Doenças desassociada do paciente." } Desassociar doenças ao paciente
Pesquisadores localhost:8000/api/pesquisadores GET - { "pesquisadores": [ { "id": 1, "nome": "João Guilherme Moura", "cpf": "11122233344", "data_nascimento": "2004-01-01", "uf_id": 11, "municipio_id": 110001, "sexo_id": 1 } ] } Listas os pesquisadores
localhost:8000/api/pesquisadores POST "nome","data_nascimento","cpf","sexo_id","uf_id", "municipio_id" { "message": "Pesquisador cadastrado com sucesso!" } Cadastrando Pesquisador
localhost:8000/api/pesquisadores/{id} PUT "nome","data_nascimento","cpf","sexo_id","uf_id", "municipio_id" { "message": "Pesquisador cadastrado com sucesso!" } Atualizando dados do Pesquisador
UF localhost:8000/api/localidade/uf POST "nome","sigla" { "message": "Uf cadastrado com sucesso!" } Cadastrar UF
localhost:8000/api/localidade/uf/{id} PUT "nome","sigla" { "message": "Uf atualizada com sucesso!" } Atualizar UF
Municipios localhost:8000/api/localidade/municipio POST "nome","uf_id" { "message": "Municipio cadastrado com sucesso!" } Cadastrando Municipio
localhost:8000/api/localidade/municipio/{id} PUT "nome","uf_id" { "message": "Municipio atualizada com sucesso!" } Atualizar Municipio

Módulo Transparência

Grupo URL Tipo Campos para o ENVIO Exemplo de Retorno JSON Descrição
Busca localhost:8000/api/localidade/{id} GET - { "municipios": [ { "id": 11, "nome": "Rondônia", "sigla": "RO", "municipios": [ { "id": 110001, "nome": "Alta Floresta D'Oeste", "uf_id": 11 }, { "id": 110037, "nome": "Alto Alegre dos Parecis", "uf_id": 11 }, ... Lista UF ou exibir uma UF e seus Municipios
localhost:8000/api/listar GET - "sexos": [ { "id": 1, "nome": "M" }, { "id": 2, "nome": "F" } ], "faixa": [ { "1": "00-18", "2": "19-25", "3": "26-35", "4": "36-50", "5": "51-60", "6": "60-70", "7": "70-80", "8": "80-100" } ] Lista dados que serião apresentado dentro de um select (doenças, sexos, faixas)
localhost:8000/api/filtro GET "doenca_id", "uf_id", "municipio_id", "sexo_id", "faixa" { "pacientes_qtd": 1 } Listar a quantidade de parciete baseado no filtro

Releases

No releases published

Packages

No packages published