Impacto da nova API Calendário nos sistemas da CODE
Data de elaboração | 21/03/22 |
---|---|
Responsável pelo estudo |
|
Equipe do estudo | Esquadrão Suicida |
Alvo | API Calendário |
Origem |
o que originou o estudo?
|
Objetivo | Definir estratégia de implementação da nova API nos sistemas desenvolvidos e/ou mantidos pela Coordenadoria de Desenvolvimento. |
Documentação correlata (opcional) | https://e-estado-api.master.local/swagger/index.html |
Observações | Não possui. |
Glossário
- API - Conjunto de definições para que seja possível acessar determinados recursos de forma padronizada e mais simples.
- Endpoint - O ponto de comunicação pelo qual as definições das APIs são acessíveis.
- JSON - Um formato de dados de fácil integração entre sistemas distintos, composto de propriedade:valor.
- Node.js - Ambiente que permite a execução de aplicações desenvolvidas em JavaScript.
- JavaScript - Linguagem de programação utilizada para desenvolvimento de sistemas diversos.
1. Introdução
Evitar falha nas aplicações devido a descontinuidade programada da API e-Estado1.
2. Desenvolvimento
2.1 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}, que retorna um JSON como o 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 abrangê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á as demais propriedades 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".
2.2 API Calendário - a nova
A API Calendário foi desenvolvida utilizando Node.js. Além disse, está totalmente integrada ao OpenShift o que facilita 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. Dessa forma, o único trabalho a ser realizado no sistemas que já utilizam a API antiga será o de substituir, em suas aplicações, o endereço da API e-Estado pelo endereço da nova API Calendário
3. Conclusão
A partir do estudo realizado foi possível identificar que não haverá nenhum impacto na mudanç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.
4. 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 mar 2022.