Ir para o conteúdo principal

Impacto da nova API Calendário nos sitemas da CODE

Data: 21/02/03/22

Autores:

  1. Diego Gonçalves de Almeida (Assessor)
  2. Igor Ramos de Oliveira (Assessor)

1. Objetivo

Definir estratégia de implementação da nova API nos sistemas desenvolvidos e/ou mantidos pela Coordenadoria de Desenvolvimento.

2. Introdução

Evitar falha nas aplicações devido a descontinuidade programada da API e-Estado1

3. Desenvolvimento

3.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".


3.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

4. 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.

5. 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 fevmar 2022.