Closed Thulio-Carvalho closed 4 years ago
Se for detectada qualquer dificuldade maior nessa issue, podemos também discutir formas de dividir em mais issues.
Acho que dedicação de um tempo maior a essa issue - pensando sempre em como melhorar o design do código pode ser muito relevante para praticar alguns princípios básicos de clean coding. De qualquer forma, tudo que referenciei até agora deve ser bastante novo para alguém que ainda não pagou Prog2, por exemplo. Então sinta-se livre para tirar qualquer dúvida, fazer sugestões, críticas, etc.
Btw, Acho que iterar mentalmente algumas vezes sobre o código feito, a fim de tentar identificar possíveis mudanças que podem ser boas e especificamente o motivo de serem boas é extremamente relevante para aprender bem.
Como faço para retornar o json e o ping em um único arquivo(api.py)?
Cada funcionalidade (ping e schedule) deve ter o código em um arquivo serparado dentro de routes
. O api.py deve identificar essas novas rotas adicionadas mesmo em arquivos diferentes e cada um deles tem a responsabilidade de retornar os dados na função de rota definida. Ou seja, a ideia n é retornar no api.py mesmo.
Acho que o jeito de fazer isso é usando blueprints:
https://stackoverflow.com/questions/11994325/how-to-divide-flask-app-into-multiple-py-files
Descreva a feature em detalhes
Deve ser implementado na API a funcionalidade de obtenção de horários no dia atual. Para simplificar: será necessário apenas a criação de um endpoint GET
/schedule
que deverá retornar um json simulando os horários de aulas no dia por LCC.Importante: Será ótimo se na finalização dessa issue tivermos uma estrutura de código que facilite modificações posteriores. Recomendo fortemente estudar um pouco sobre princípios de design de código.
Necessidade da feature:
Essa feature é a principal do primeiro ciclo do desenvolvimento.
Como ela pode ser implementada:
Um boa forma de desenvolver essa funcionalidade pode ser tentando replicar as estruturas de projetos de APIs RESTful (com algumas ressalvas, pois no nosso caso não é necessário persistir dados em banco, por exemplo). Existem diversos tutorias de codificação de APIs REST em python com flask, encontrei uma que parece ser boa:
Obs: Acredito que seguir um tutorial bem explicado para construção de uma API REST pode ser bastante útil para aprender a desenvolver essa nossa funcionalidade específica.
O retorno json esperado do endpoint /schedule pode seguir o exemplo: