O que é BOA?
O BOA (Benner Open API) é o padrão de API abertas da Benner, acrescentando definições ao Open API que define uma interface padrão independente de linguagem para desenvolvimento de APIs baseadas no protocolo HTTP (REST).
O BOA surgiu na Guilda de Mobile em Maio de 2022, buscando a padronização entre API e recursos de API dos times dos produtos da Benner.
Como exemplos da falta de padrão, podemos citar:
- Ter uma mensagem com código de retorno 200 (sucesso), descrevendo o erro no corpo da mensagem, o correto seria devolver o código do erro ocorrido.
- Usar um POST para fazer um Delete, sem usar o próprio verbo DELETE.
- Estruturas diferentes de paginação, cada programador criando sua própria estrutura.
- Estruturas de rotas diferentes, com nomenclaturas e estruturas diferentes.
- Autenticação básica outros OAuth2.
- Registros de erro/log, registrando informações em locais distintos (arquivos, Event Viewer, etc.).
Qual o motivo te der um padrão?
Poder utilizar de forma homogênea todos os recursos da API, sem ter a preocupação com as funcionalidades padrão entre recursos, por exemplo: paginação, utilização de filtros, estruturação de rotas, etc. Desta forma a preocupação se torna a regra de negócio e ainda é importante dizer que para o consumidor das APIs o trabalho é facilitado.
Além disso, temos uma implementação compartilhada, ou seja, todos os times possuem acesso aos códigos que podem ser usados livremente nos produtos bem como a disponibilidade no NuGet da Tecnologia, assim, agregamos funcionalidades poderosas (filtros avançados sem necessidade de rotas novas, usam-se as mesmas rotas apenas alterando os parâmetros selecionados). Com isso, evitamos a poluição do catálogo de APIs da aplicação.
Resumidamente, podemos dizer que ter um padrão nos agrega simplificação, facilidade de manutenção, rápido aprendizado e performance.
Ah! Importante salientar que tanto no BEF .NET Core quanto no WES, os padrões são compatíveis e operacionais.
Como saber mais sobre BOA?
A documentação para a Wiki encontra-se aqui. Nela é possível verificar os padrões definidos pelo BOA.
Além disso, o Danilo Pereira da Silva juntamente com o Dirceu Schlickmann, gravaram um BE.TECH explicando o BOA:
O código fonte usado no BE.TECH pode ser baixado aqui.
Espero que tenha gostado, te vejo no próximo post, um abraço,
Danton C. Franco Junior
#TimeTec