- E7 - Kadastramento
- Entradas e saídas
- Input 1 - Requisição POST para /signup.
- Output 1 - Resposta do servidor
- Input 2 - Requisição POST para /login
- Output 2 - Resposta do servidor
- Input 3 - Requisição PATCH para /profile/
- Output 3 - Resposta do servidor
- Input 4 - Requisição DELETE para /profile/
- Output 4 - Resposta do servidor
- Input 5 - Requisição GET para /users
- Output 5 - Resposta do servidor
- Entregáveis
- Critérios de aceitação
Para essa entrega, você criará um sistema que permitirá o cadastramento e a manutenção de um usuário em uma plataforma.
Essa atividade foi elaborada para trabalhar seus conhecimentos de manipulação de arquivos CSV em uma aplicação em Flask.
Você deverá criar um arquivo chamado users.csv, que utilizará para guardar os registros de usuários. Você precisará retornar status em suas requisições, então como sugestão, utilize o HTTP modules do Python para retornar os status corretamente! Centralize sua lógica de rotas em um arquivo chamado app.py
Ex 1: A rota de registro deve seguir o seguinte formato:
- URI: /signup
- Assinatura da função: signup()
Ex 2: A rota de login deve seguir o seguinte formato:
- URI: /login
- Assinatura da função: login()
Ex 3: A rota de update deve seguir o seguinte formato:
- URI: /profile/int:user\_id
- Assinatura da função: update_user(user_id)
Ex 4: A rota de delete deve seguir o seguinte formato:
- URI: /profile/int:user\_id
- Assinatura da função: delete_user(user_id)
Ex 5: A rota de get dos usuários deve seguir o seguinte formato:
- URI: /users
- Assinatura da função: all_users()
Exercício 1
IMPORTANTE: Você deve verificar se já existe um usuário com o mesmo email dentro da sua base de dados, caso exista, deve retornar status 422 - Unprocessable Entity e um JSON vazio.
# Body da requisição
{
"name": "Naruto Uzumaki",
"email": "naruto@konoha.com",
"password": "imgoingtobeahokage123",
"age": 19
}
{
"id": "1",
"name": "Naruto Uzumaki",
"email": "naruto@konoha.com",
"age": 19
}
Exercício 2
# Body da requisição
{
"email": "naruto@konoha.com",
"password": "imgoingtobeahokage123"
}
{
"id": "1",
"name": "Naruto Uzumaki",
"email": "naruto@konoha.com",
"age": 19
}
Exercício 3
# Body da requisição
{
"age": 21
}
{
"id": "1",
"name": "Naruto Uzumaki",
"email": "naruto@konoha.com",
"age": 21
}
Exercício 4
# Body da requisição
NO CONTENT
// STATUS 204 - NO CONTENT
Exercício 5
# Body da requisição
NO CONTENT
[
{
"id": "1",
"name": "Naruto Uzumaki",
"email": "naruto@konoha.com",
"age": 21
},
{
"id": "2",
"name": "Cygnus Hyoga",
"email": "hyoga@cdz.com",
"age": 14
}
]
- Link do repositório do GitLab
- Código fonte:
- arquivo app.py.
- Privacidade
- Incluir ka-br-out-2020-correcoes como reporter.
pts | Dado | Quando | É esperado |
---|---|---|---|
1 | Rota /signup funcionando corretamente |
POST realizado para rota /signup | Seja criado um novo usuário caso ele não exista, caso contrário, retorne um JSON vazio com status 422 |
1 | Rota /login funcionando corretamente |
POST realizado para rota /login | Retorne um JSON com as informações do usuário, se o email ou senha estiverem inválidos, deve retornar uma resposta de erro |
1 |
Rota /profile/int:user\_id funcionando corretamente |
PATCH realizado para /profile/int:user\_id | Retorne um JSON com as informações do usuário atualizados e status 200 |
1 | Rota /profile/int:user\_id funcionando corretamente |
DELETE realizado para /profile/int:user\_id | Retorne um status 204 - NO CONTENT |
1 | Rota /users funcionando corretamente |
GET realizado para /users | Retorne um JSON com a lista de usuários registrados e o status 200 - OK |
Boa diversão, devs! 🚀👨💻👩💻🚀