Impacto da nova API Calendário nos sitemas da CODE
OBJETIVO
Definir estratégia de implementação da nova api nos sistemas desenvolvidos e/ou mantidos pela Coordenadoria de Desenvolvimento.
JUSTIFICATIVA
Evitar falha nas aplicações devido a descontinuidade programada da API e-Estado1.
RESULTADOS ESPERADOS
Exposição dos riscos e estratégia de implementação na troca da da API e-Estado pela API Calendário.
ENVOLVIDOS
- Assessor:
- Diego Gonçalves de Almeida; e,
- Igor Ramos de Oliveira.
- Equipe Técnica:
- Diego Barros de Oliveira;
- Alef Carvalho da Silva;
- Anderson Soares Cardoso.
- Gerente de Desenvolvimento:
- Janderson de Castro Thomaz.
- Product Owner:
- Jônatas Justiniano Lima.
- Scrum Master:
- Wagner Moreira Melo.
GLOSSÁRIO
- API - .
- Resposta - .
- Endpoint - .
- Objeto Json - ,
- Label Json - .
- Desserialização - .
DESENVOLVIMENTO
API e-Estado - a antiga
Atualmente a API e-Estado tem um endpoint que retorna os feriados cadastrados no e-Estado.
O endpoint é GET /api/feriados/mes/{mes}/ano/{ano} retornava uma lista de objetos como que se observa abaixo:
[
{
"id": 158,
"municipioId": 5582,
"data": "2022-05-24T00:00:00",
"horaInicial": "",
"horaFinal": "",
"calendario": "Padroeira dos municípios Nossa Senhora Auxiliadora",
"municipio": "Porto Velho"
},
{
"id": 158,
"municipioId": 5587,
"data": "2022-05-24T00:00:00",
"horaInicial": "",
"horaFinal": "",
"calendario": "Padroeira dos municípios Nossa Senhora Auxiliadora",
"municipio": "Vilhena"
},
{
"id": 158,
"municipioId": 5592,
"data": "2022-05-24T00:00:00",
"horaInicial": "",
"horaFinal": "",
"calendario": "Padroeira dos municípios Nossa Senhora Auxiliadora",
"municipio": "Alto Paraíso"
},
{
"id": 154,
"municipioId": 0,
"data": "2022-05-01T00:00:00",
"horaInicial": "",
"horaFinal": "",
"calendario": "Dia Mundial do Trabalho",
"municipio": null
}
]
Note que para eventos com abragência municipal é retornado um objeto de evento para cada município. Na lista acima, o evento ID = 158
é municipal e para cada município (Porto Velho, Vilhena, Alto Paraíso) é retornado um objeto com o mesmo ID.
Todavia, nos eventos estaduais, para cada evento será retornado um objeto, porém os rótulos "municipioId"
terão valor 0
e os rótulos "municipio"
terão valor null
. Exemplo.
[
{
"id": 154,
"municipioId": 0,
"data": "2022-05-01T00:00:00",
"horaInicial": "",
"horaFinal": "",
"calendario": "Dia Mundial do Trabalho",
"municipio": null
}
]
Já nos demais rótulos do objeto tem os seguintes valores:
"id": o ID do evento,
"data": a data do evento em formato "yyyy-mm-ddT00:00:00",
"horaInicial": sempre vazio (""),
"horaFinal": sempre vazio (""),
"calendario": nome do evento, por exemplo, "Padroeira dos municípios Nossa Senhora Auxiliadora".
API Calendário - a nova
A API Calendário foi desenvolvida com tecnologias A B C, sendo portanto mais segura, estando no OpenShift o que faciltia mais sua manutenção.
Deste modo, ela será a substituta do endpoint de Feriados da API e-Estado que está programa para ser descontinuada por obsolecência.
Para evitar grandes ajustes nos sistemas que já consomem o endpoint da API e-Estado, um endpoint, com o mesmo padrão de resposta, na API foi criado; a desserialização dos objetos continuará a mesma.
No entanto será preciso alterar a url que apontava para API e-Estado para a nova api, API Calendário; sendo este, basicamente, o único trabalho decorrente da mudança;
CONCLUSÃO
A partir do estudo realizado foi possível identificar que não haverá nenhum impacto na mundança da API e-Estado para a API Calendário, senão aquele decorrente da troca da URL, visto que a nova já traz um endpoint igual à antiga e com o mesmo padrão de resposta.
REFERÊNCIAS
[1] API e-Estado - Documentação. Disponível, internamente à intranet da SETIC, em: https://e-estado-api.master.local/swagger/index.html. Acesso em: 21 fev 2022.