🏆 O desafio
À partir de agora, o seu desafio é continuar escrevendo as funcionalidades que faltam, mas vou te dar umas dicas.
Relembrando, ainda temos as seguintes tarefas a serem feitas.
- listar as tarefas
- adicionar tarefa
- remover tarefa
- ordenar a listagem por estado
- finalizar uma tarefa
- exibir uma tarefa de forma detalhada
❌ Remover tarefas
A remoção de tarefas consiste em buscar uma tarefa e em seguida remove-la.
O método utilizado é o DELETE
.
O código de status retornado mais comum é o 204 No Content
.
Você deve especificar o id da tarefa a ser removida na url /tarefas/86d92774-281c-4e5a-87f2-69029177bfd2
.
Caso não encontra uma tarefa, o código de status 404 Not Found
deve ser retornado.
Tip
Para não retornar conteúdo no corpo da resposta, utilize `Response(status_code=status.HTTP_204_NO_CONTENT).
📗 Ordenar a listagem por estado
Já temos a listagem pronta mas não garantimos que sua ordenação está correta.
Um teste que pode ser escrito aqui é adição de duas tarefas, sendo a primeira finalizada e a segunda não finalizada.
A exibição da listagem de tarefas deve apresentar a segunda primeiro. Para fazer esta checagem, verifique a resposta e a ordem das tarefas retornadas.
A função sorted
pode ser seu aliado para resolver este problema.
Outra função bastante útil é a itemgetter
que pode ser utilizada no parâmetro key
da função sorted.
Uma alteração que pode ser feita na listagem é utilização de list[Tarefa]
como modelo de resposta( parâmetro response_model no decorador), esta mudança ajuda a melhorar a documentação autogerada.
Warning
itemgetter
pode ser obtido através do pacote operator.from operator import itemgetter
☑️ Finalizar uma tarefa
Finalizar uma tarefa, pode ser representado através do método PUT
ou PATCH
, modificando o valor de estado de uma tarefa.
Devemos procurar uma tarefa e caso não seja encontrada, o código de status 404 Not Found
deve ser retornado.
Os campos a serem modificados podem ser inválidos, caso isto ocorra everemos avisar ao cliente o seu erro. O código de status 422 Unprocessable Entity
pode ser utilizado aqui.
Se bem sucedido o código de status 200 OK
deve ser retornado e o corpo da resposta deve conter a tarefa com o valor já modificado.
Você deve especificar o id da tarefa a ser removida na url /tarefas/86d92774-281c-4e5a-87f2-69029177bfd2
.
📜 Detalhando tarefas
Detalhar uma tarefa é busca-la na lista de tarefas e exibir seu valor.
Caso a tarefa não seja encontrada o código de status 404 Not Found
deve ser retornado.
Você deve especificar o id da tarefa a ser removida na url /tarefas/86d92774-281c-4e5a-87f2-69029177bfd2
.
O código de status retornado quando bem sucedido é 200 OK
.
🏁 Concluindo
Assim finalizamos este guia, espero que tenha curtido bastante esta jornada de aprendizado.
Ainda temos várias coisas não abordadas neste guia que complementam nossa aplicação, mas que tornariam a didática pior.
Caso tenha gostado, não deixe de estrelar o repositório como forma de gratidão. Isto motiva a escrever mais materiais interessantes como este em português.