CRUD em React Native, que consome uma API REST em Java Spring com MySQL, proposta de exercício da disciplina de laboratório de banco de dados
- Frontend
- React Native
- Expo
- TypeScript
- Node (para gerenciar dependências)
- Backend
- Maven
- Java
- Spring
- Flyway
- Banco de dados
- MySQL
- Necessario ter instalado o Node Js e o Maven
- em \backend\src\main\resources\application.properties alterar os valores informados no arquivo
- em \frontend\src\service, nos dois arquivos, alterar o valor de API_BASE_URL para o ipv4 da maquina rodando a API (Caso esteja usando um dispositivo real com o Expo Go instalado), caso esteja usando emulador android, descomente a linha
const API_BASE_URL = 'http://10.0.2.2:8080'
, lembrando de trocar o 8080 pelo valor da porta que esta rodando a API
-
App (frontend)
- Acesse o diretório frontend
- Use o comando do nodeJS
npm install
para instalar as dependências - usar o comando
npx expo start
para rodar o expo, vai ser gerado um QR Code, você deve instalar em seu celular o aplicativo "Expo Go" e ao entrar nele, apontar a camera para o QR CODE - Caso esteja usando emulador, com o emulador aberto, após usar o mesmo comando acima, use a tecla 'A', ele vai instalar o Expo Go e o projeto no emulador
-
API (Backend)
- Acesse o diretório backend\src\main\java\com\hospital\receitas
- usar o comando do maven
mvn install
para instalar dependências - usar o comando
mvn spring start
para iniciar o projeto
- POST,
/medicamento
: cria um médicamento- Recebe:
{number id, string nome, string tipo, number quantidade}
- Retorna:
(Sucesso) HTTP STATUS 201 Body: {number id, string nome, string tipo, number quantidade}
(Falha) HTTP STATUS 400
- Recebe:
- GET:
/medicamento
: retorna todos os médicamentos cadastrados- Retorna:
(Sucesso) HTTP STATUS 200 Body:[{number id, string nome, string tipo, number quantidade}]
(Falha) HTTP STATUS 200 Body:[]
/medicamento/id
: retorna o médicamento que tenha o id informado na URL- Retorna:
(Sucesso) HTTP STATUS 200 {number id, string nome, string tipo, number quantidade}
(Falha) HTTP STATUS 200 Body:{}
- PUT
/medicamento/{id}
: Atualiza campos do médicamento que tenha o id informado na URL- Recebe:
{<opcional> string nome, <opcional> string tipo, <opcional> number quantidade}
- Retorna:
(Sucesso)HTTP STATUS 200 Body:{number id, string nome, string tipo, number quantidade}
(Falha) HTTP STATUS 400
- Recebe:
- DELETE
/medicamento/{id}
: Deleta o médicamento que tenha o id informado na URL- Retorna:
(Sucesso) HTTP STATUS 200 | (Falha) HTTP STATUS 400
- Retorna:
- POST,
/receita
: cria uma receita- Recebe:
{ string(YYYY-MM-DD) dataReceita, number[] medicamentoIds, string medicoNome, string pacienteNome, string observacoes}
- Retorna:
(Sucesso) HTTP STATUS 201 Body: { number id, string(YYYY-MM-DD) dataReceita, Medicamento[] medicamentos, string medicoNome, string pacienteNome, string observacoes}
(Falha) HTTP STATUS 400
- Recebe:
- GET:
/receita
: retorna todos os receitas cadastrados- Retorna:
(Sucesso) HTTP STATUS 200 Body:[ { string(YYYY-MM-DD) dataReceita, number[] medicamentoIds, string medicoNome, string pacienteNome, string observacoes}]
(Falha) HTTP STATUS 200 Body:[]
- Retorna:
/receita/id
: retorna a receita que tenha o id informado na URL- Retorna:
(Sucesso) HTTP STATUS 200 Body: { string(YYYY-MM-DD) dataReceita, number[] medicamentoIds, string medicoNome, string pacienteNome, string observacoes}
(Falha) HTTP STATUS 200 Body:{}
- Retorna:
/receita/paciente/{nome}
: retorna as receitas do paciente cujo o nome será informado na URL- Retorna:
(Sucesso) HTTP STATUS 200 Body: [ { string(YYYY-MM-DD) dataReceita, number[] medicamentoIds, string medicoNome, string pacienteNome, string observacoes} ] , {...}
(Falha) HTTP STATUS 200 Body:{}
- Retorna:
- PUT
/receita/{id}
: Atualiza campos da receita que tenha o id informado na URL- Recebe:
Body:{ <opcional> string(YYYY-MM-DD) dataReceita, <opcional> number[] medicamentoIds, <opcional> string medicoNome, <opcional> string pacienteNome, <opcional> string observacoes}
- Retorna:
(Sucesso)HTTP STATUS 200 Body:{ string(YYYY-MM-DD) dataReceita, number[] medicamentoIds, string medicoNome, string pacienteNome, string observacoes}
(Falha) HTTP STATUS 400
- Recebe:
- DELETE
/receita/{id}
: Deleta a receita que tenha o id informado na URL- Retorna:
(Sucesso) HTTP STATUS 200 | (Falha) HTTP STATUS 400
- Retorna: