SDKs de Código Aberto
A Arara acredita que a melhor experiência do desenvolvedor vem de SDKs bem construídos e mantidos pela comunidade. Por isso, incentivamos e suportamos a criação de SDKs de código aberto para diferentes linguagens e frameworks.Por Que SDKs?
SDKs facilitam a integração, reduzem erros comuns, fornecem autocomplete e documentação inline, e tornam a experiência de desenvolvimento muito mais agradável. Eles são essenciais para uma excelente DX (Developer Experience).SDKs Disponíveis e Planejados
Node.js/TypeScript
SDK oficial para Node.js e TypeScript
Python
SDK oficial para Python
Java
SDK oficial para Java
PHP
SDK oficial para PHP
Go
SDK oficial para Go
Não encontrou um SDK para sua linguagem favorita? Siga o guia abaixo para criar o seu próprio! SDKs da comunidade são muito bem-vindos e podem se tornar oficiais com o tempo.
Criando um Novo SDK
Se você quer criar um SDK para uma linguagem que ainda não tem suporte, siga este guia para garantir consistência e qualidade.Regras e Diretrizes
Antes de começar, certifique-se de seguir estas regras:1. Estrutura do Repositório
- Nome: Use o padrão
arara-{linguagem}-sdk(ex:arara-python-sdk,arara-java-sdk) - Organização: Crie o repositório na organização
ararahqno GitHub (Caso não consiga, contate o suporte) - Licença: Use a licença MIT
- README: Deve incluir:
- Instalação
- Exemplo básico de uso
- Link para documentação completa
- Badges (build status, version, license)
2. Funcionalidades Mínimas
Todo SDK deve implementar pelo menos:- Autenticação: Suporte a API Key via header
Authorization - Envio de Mensagens: Método para
POST /v1/messages - Tratamento de Erros: Classes/exceções específicas para cada tipo de erro HTTP
- Validação: Validação básica de parâmetros antes de enviar
- Type Safety: Tipos fortes quando a linguagem suporta (TypeScript, Java, etc.)
3. Padrões de Código
- Nomenclatura: Siga as convenções da linguagem
- Documentação: Documente todas as funções públicas
- Testes: Inclua testes unitários e de integração
- Exemplos: Forneça exemplos práticos no README e na documentação
4. Gerenciamento de Versões
- Use Semantic Versioning (MAJOR.MINOR.PATCH)
- Mantenha um CHANGELOG.md atualizado
- Tag releases no GitHub
Passo a Passo: Criando um SDK
1
1. Planejamento
Antes de começar a codificar:
- Verifique se já existe: Consulte a lista de SDKs acima e o GitHub da Arara
- Abra uma Issue: Crie uma issue no repositório principal da Arara anunciando sua intenção
- Planeje a estrutura: Decida sobre:
- Gerenciador de pacotes (npm, pip, maven, etc.)
- Biblioteca HTTP (fetch, requests, okhttp, etc.)
- Estrutura de pastas
- Sistema de testes
2
2. Configuração Inicial
Configure o projeto básico:
- Crie o repositório no GitHub
- Configure o gerenciador de pacotes
- Configure ferramentas de build/test
- Adicione arquivos essenciais (README, LICENSE, .gitignore)
- Configure CI/CD básico (GitHub Actions, etc.)
3
3. Implementação do Cliente Base
Crie a classe/função principal do cliente:
- Inicialização: Recebe a API Key
- Configuração HTTP: Base URL, headers padrão, timeout
- Tratamento de Erros: Mapeamento de códigos HTTP para exceções
- Método genérico de requisição: Para fazer chamadas HTTP
4
4. Implementação do Recurso de Mensagens
Crie a classe/função para enviar mensagens:
- Método
send: Recebereceiver,templateName,variables - Validação: Valida formato do número e parâmetros obrigatórios
- Retorno tipado: Retorna um objeto com os dados da mensagem
5
5. Tratamento de Erros
Implemente classes de erro específicas:
- AraraError/AraraException: Classe base
- Erros específicos: 400, 401, 404, 422, 500
- Mensagens claras: Erros devem ter mensagens descritivas
6
6. Testes
Crie testes abrangentes:
- Testes unitários: Para cada método
- Testes de integração: Com a API real (use API Key de teste)
- Testes de erro: Para cada tipo de erro HTTP
- Cobertura: Almeje pelo menos 80% de cobertura
7
7. Documentação e Exemplos
Documente tudo:
- README completo: Com instalação, uso básico e exemplos
- Documentação de API: Use ferramentas como JSDoc, Sphinx, JavaDoc
- Exemplos práticos: Casos de uso comuns
- CHANGELOG: Mantenha um changelog atualizado
- Título e descrição do SDK
- Seção de instalação com comandos específicos
- Exemplo básico de uso
- Link para documentação completa
- Instruções de contribuição
8
8. Publicação e Manutenção
Publique e mantenha:
-
Publique no gerenciador de pacotes:
- npm (Node.js)
- PyPI (Python)
- Maven Central (Java)
- etc.
-
Configure CI/CD:
- Testes automáticos
- Publicação automática de releases
-
Mantenha atualizado:
- Monitore mudanças na API
- Atualize quando necessário
- Responda a issues e PRs
Contribuindo com SDKs Existentes
Se você quer contribuir com um SDK existente:- Fork o repositório do SDK
- Crie uma branch para sua feature/correção
- Siga as diretrizes de contribuição do repositório
- Escreva testes para suas mudanças
- Abra um Pull Request com descrição clara
Contribuições são sempre bem-vindas! Mesmo pequenas melhorias como correções de documentação, exemplos adicionais ou melhorias de performance são valiosas.
SDKs da Comunidade
SDKs criados pela comunidade também são bem-vindos! Se você criou um SDK que não está na lista oficial:- Adicione na documentação: Abra um PR adicionando seu SDK na lista acima
- Mantenha atualizado: Certifique-se de manter o SDK compatível com a API
- Siga as diretrizes: Use as mesmas regras e padrões dos SDKs oficiais
Recursos Úteis
- API Reference - Documentação completa da API
- GitHub da Arara - Repositórios oficiais
- Discord da Comunidade - Para dúvidas e discussões

