Desafio Api Laravel
- php:7.3
- PostgreSQL 10
- docker-compose
-
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
- 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
-
É 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
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 |
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 |