# Portal Jurunense API - SDK Este projeto agora inclui um **SDK oficial** para consumir a API Portal Jurunense de forma simples e tipada em TypeScript/JavaScript. ## Localização O SDK está localizado no diretório `/sdk` na raiz do projeto. ## Estrutura do SDK ``` sdk/ ├── src/ # Código fonte TypeScript │ ├── types/ # Definições de tipos │ ├── client/ # Clientes HTTP │ └── index.ts # Ponto de entrada ├── dist/ # Código compilado (gerado) ├── examples/ # Exemplos de uso ├── package.json ├── tsconfig.json ├── README.md # Documentação completa ├── QUICK_START.md # Guia de início rápido ├── CONTRIBUTING.md # Guia de contribuição └── PUBLISH.md # Guia de publicação ``` ## Scripts Disponíveis No diretório raiz do projeto, você pode usar os seguintes scripts para trabalhar com o SDK: ```bash npm run sdk:install # Instala dependências do SDK npm run sdk:build # Compila o SDK npm run sdk:watch # Compila e observa mudanças npm run sdk:publish # Publica o SDK no NPM ``` ## Uso do SDK ### Instalação (quando publicado) ```bash npm install @portaljuru/api-client ``` ### Exemplo Básico ```typescript import { PortalJuruClient } from '@portaljuru/api-client'; const client = new PortalJuruClient({ baseURL: 'https://api.portaljuru.com.br' }); // Fazer login const { data } = await client.auth.login({ username: 'usuario', password: 'senha' }); // Buscar pedidos const orders = await client.orders.findOrders({ status: 'processando' }); // Listar produtos const products = await client.products.listProducts(); ``` ## Módulos Disponíveis O SDK expõe os seguintes módulos: - **auth** - Autenticação (login, refresh token, logout) - **logistic** - Logística (expedição, funcionários, entregas, veículos) - **orders** - Pedidos (busca, criação, transferências, notas fiscais) - **products** - Produtos (listagem, busca, validação) - **partners** - Parceiros (CRUD completo) - **dataConsult** - Consulta de dados (clientes, transportadoras, vendedores, lojas) - **ordersPayment** - Pagamentos de pedidos - **crm** - CRM (negociações, ocorrências, tabela de motivos) ## Tipos TypeScript O SDK inclui tipos completos para TypeScript, facilitando o desenvolvimento com autocompletar e validação de tipos. ```typescript import type { Order, Product, Customer, LoginResponse, ApiResponse } from '@portaljuru/api-client'; ``` ## Desenvolvimento Para desenvolver o SDK localmente: 1. Entre no diretório do SDK: ```bash cd sdk ``` 2. Instale as dependências: ```bash npm install ``` 3. Compile o código: ```bash npm run build ``` 4. Para desenvolvimento contínuo: ```bash npm run watch ``` ## Documentação - [README completo do SDK](./sdk/README.md) - Documentação detalhada de todas as funcionalidades - [Guia de Início Rápido](./sdk/QUICK_START.md) - Comece a usar em minutos - [Guia de Contribuição](./sdk/CONTRIBUTING.md) - Como contribuir com o SDK - [Guia de Publicação](./sdk/PUBLISH.md) - Como publicar no NPM ## Exemplos Veja os exemplos práticos em [sdk/examples/](./sdk/examples/): - `basic-usage.ts` - Exemplo básico de uso - `logistic-example.ts` - Exemplo de operações logísticas ## Publicação Para publicar uma nova versão do SDK no NPM: 1. Atualize a versão: ```bash cd sdk npm version patch # ou minor/major ``` 2. Compile: ```bash npm run build ``` 3. Publique: ```bash npm publish --access public ``` Ou use o script do projeto raiz: ```bash npm run sdk:publish ``` ## Benefícios do SDK - Tipagem completa em TypeScript - Autocompletar em IDEs - Tratamento de erros consistente - Gerenciamento automático de tokens - Interface intuitiva e orientada a objetos - Documentação completa com exemplos - Suporte a todas as funcionalidades da API ## Licença MIT - Veja o arquivo [LICENSE](./sdk/LICENSE) para mais detalhes.