{"id":29177817,"url":"https://github.com/totvs/winthor-smart-hub-layouts","last_synced_at":"2026-05-28T21:01:05.520Z","repository":{"id":218722882,"uuid":"675639516","full_name":"totvs/winthor-smart-hub-layouts","owner":"totvs","description":"Versionamento de integrações WSH - Winthor","archived":false,"fork":false,"pushed_at":"2026-05-27T19:34:14.000Z","size":7089,"stargazers_count":8,"open_issues_count":0,"forks_count":5,"subscribers_count":7,"default_branch":"main","last_synced_at":"2026-05-27T21:16:26.869Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/totvs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-08-07T11:38:52.000Z","updated_at":"2026-05-15T19:40:43.000Z","dependencies_parsed_at":"2026-01-12T14:02:54.497Z","dependency_job_id":null,"html_url":"https://github.com/totvs/winthor-smart-hub-layouts","commit_stats":null,"previous_names":["totvs/winthor-smart-hub-layouts"],"tags_count":386,"template":false,"template_full_name":null,"purl":"pkg:github/totvs/winthor-smart-hub-layouts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Fwinthor-smart-hub-layouts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Fwinthor-smart-hub-layouts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Fwinthor-smart-hub-layouts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Fwinthor-smart-hub-layouts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/totvs","download_url":"https://codeload.github.com/totvs/winthor-smart-hub-layouts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/totvs%2Fwinthor-smart-hub-layouts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33626142,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-01T18:08:09.858Z","updated_at":"2026-05-28T21:01:05.480Z","avatar_url":"https://github.com/totvs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Winthor Smart Hub Layouts\n\nA fim de melhorar o controle e o versionamento dos layouts criados e alterados, bem como facilitar a implantação do Winthor Smart Hub, foram criados layouts com padrões pré-definidos. O Winthor Smart Hub atua como um intermediário entre duas APIs distintas, facilitando a comunicação entre elas. Ele é essencial em integrações de sistemas heterogêneos, onde as APIs têm diferentes formatos de dados, autenticação, endpoints e outros aspectos. para realiza a comunicação entre apis. Existem dois layouts principais: de transformação e comunicação, eles podem, através deste repositório, ser facilmente ajustados e versionados de acordo com as necessidades específicas de integração de cada projeto. Isso proporciona uma maior flexibilidade e agilidade no desenvolvimento e na manutenção das integrações.\n \n## Funcionalidades\n- Versionamento de layouts de transformação e Comunicação;\n- Roteamento de servicos de busca e envio entre as empresas APIs;\n- Manipulação de variáveis fixas e dinâmicas;\n- Layouts de Transformação: Responsáveis por converter os dados de um formato para outro, adequando-os aos requisitos da API de destino.\n- Layouts de Comunicação: Definem a estrutura e os parâmetros necessários para realizar a comunicação entre as APIs, incluindo autenticação, endpoints e manipulação de erros.\n\n#### Api para instalação do layout\n\n```http\n  POST /winthor/integracao/fulfillment/v1/layout/instalar-layout\n```\n\n| Parâmetro   | Tipo       | Descrição                           |\n| :---------- | :--------- | :---------------------------------- |\n| `projetoNome` | `string` | **Obrigatório**. Nome layout a ser instalado |\n| `versao` | `string` | **Obrigatório**. Versão do layout a ser instalado |\n| `caminhoLayout` | `string` | **Não Obrigatório**. Caminho para a pasta de layouts (apenas em modo de desenvolvimento) |\n| `ambiente` | `string` | **Não Obrigatório**. Ambiente de Produção ou Homologação (padrão Homologação)|\n\n\n## Alteração ou Criação de Layouts\n\nClone o repositório winthor-smart-hub-layouts:\n\n```bash\n  git clone https://github.com/totvs/winthor-smart-hub-layouts.git\n```\nCrie um novo Branch (mesmo padrão do Azure e Bitbucket \"feature/DWSHWTNG-123-criarRotaVendasTeste-develop\");\n\n```bash\nhttps://github.com/totvs/winthor-smart-hub-layouts/branches  \n```\nFaça o checkout\n\n```bash\ngit checkout feature/DWSHWTNG-123-criarRotaVendasTeste-develop\n```\n\nAbra a pasta winthor-smart-hub-layouts e escolha o layout:\n\n```bash\n cd C:\\fontesGit\\winthor-smart-hub-layouts\\pdvsync\n\n```    \nPara cada rota criada, adicione um novo arquivo no formato \".json\", dentro da pasta \"rotas\":\n```bash\n cd C:\\fontesGit\\winthor-smart-hub-layouts\\pdvsync\\rotas\\PDVSYNC - BUSCAR VENDAS TESTE.json\n```    \nConsidere o conteúdo abaixo para criar o arquivo de rotas:\n```bash\n{\n\t\"tabela\": {\n\t\t\"nome\": \"PCINTEGRACAOROTASERVICO\",\n\t\t\"campos\": [\n\t\t\t{\n\t\t\t\t\"nome\": \"ID\",\n\t\t\t\t\"valor\": \"PDVSYNC - BUSCAR VENDAS TESTE\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"IDEMPRESAAPI\",\n\t\t\t\t\"valor\": \"PDVSYNC\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"SERVICO\",\n\t\t\t\t\"valor\": \"PDVSYNC - BUSCAR VENDAS TESTE\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"LAYOUTCOMUNICACAO\",\n\t\t\t\t\"valor\": \"_INSIRA_O_LAYOUT_EXTRAIDO_DO_POSTMAN\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"LAYOUTTRANSFORMACAO\",\n\t\t\t\t\"valor\": \"_INSIRA_O_LAYOUT_EXTRAIDO_DO_JOLT\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"ATIVO\",\n\t\t\t\t\"valor\": \"S\"\n\t\t\t}\n\t\t]\n\t}\n}\n\n``` \nPara criar as variáveis dos layout de comunicação e transferência, adicione um novo arquivo no formato \".json\", dentro da pasta \"variaveis\", com o nome da rota seguido do nome da variável:\n```bash\n cd C:\\fontesGit\\winthor-smart-hub-layouts\\pdvsync\\variaveis\\PDVSYNC - Buscar vendas teste-{{URL_CONSULTA_VENDAS-TESTE}}.json\n```  \nConsidere o conteúdo abaixo para criar o arquivo de variaveis:\n```bash\n{\n\t\"tabela\": {\n\t\t\"nome\": \"PCINTEGRACAOVARIAVEIS\",\n\t\t\"campos\": [ \n\t\t\t{\n\t\t\t\t\"nome\": \"ID\",\n\t\t\t\t\"valor\": \"PDVSYNC - BUSCAR VENDAS TESTE-{{URL_CONSULTA_VENDAS_TESTE}}\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"CHAVE\",\n\t\t\t\t\"valor\": \"{{URL_CONSULTA_VENDAS_TESTE}}\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"TIPOCHAVE\",\n\t\t\t\t\"valor\": \"BODY\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"TIPOVALOR\",\n\t\t\t\t\"valor\": \"STRING\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"IDROTASERVICO\",\n\t\t\t\t\"valor\": \"PDVSYNC - BUSCAR VENDAS TESTE\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"VALOR\",\n\t\t\t\t\"valor\": \"_INFORME_O_VALOR_DA_VARIAVEL\"\n\t\t\t} \n\t\t]\n\t}\n}\n```  \n\nPara criar os fluxos, siga o seguinte padrão: FLUXO-{{SEQUENCIAL}}-{{DESCRICAO}}-{{ORDEMEXECUCAO}}-{{ROTASERVICO}}, onde o **SEQUENCIAL** (01, 02, 03...) deverá representar a ordem em que o fluxo deve ser inserido na tabela, a **DESCRICAO** deve ser a identificação unívoca do fluxo, a **ORDEMEXECUCAO** deverá representar a ordem em que as rotas serão executadas dentro do fluxo e por último a **ROTASERVICO** deverá ser o nome da rota. Adicione um novo arquivo no formato \".json\", dentro da pasta \"fluxos\":\n```bash\n cd C:\\fontesGit\\winthor-smart-hub-layouts\\pdvsync\\fluxos\\FLUXO-01-Compartilhamento Master-1-WTA - LoginWTA.json\n```  \n\nConsidere o conteúdo abaixo para criar o arquivo de fluxo:\n```bash\n{\n\t\"tabela\": {\n\t\t\"nome\": \"PCINTEGRACAOFLUXOEXECUCAO\",\n\t\t\"campos\": [ \n\t\t\t{\n\t\t\t\t\"nome\": \"ORDEMEXECUCAO\",\n\t\t\t\t\"valor\": \"2\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"IDROTASERVICO\",\n\t\t\t\t\"valor\": \"PDVSYNC - Buscar vendas teste\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"IDINTEGRACAOCLASSEMETODO\",\n\t\t\t\t\"valor\": \"BuscaRotaServicoNaoPaginada\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"ATIVO\",\n\t\t\t\t\"valor\": \"N\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"IDDEPENDENTE\",\n\t\t\t\t\"valor\": \"\"\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"nome\": \"DESCRICAO\",\n\t\t\t\t\"valor\": \"Vendas\"\n\t\t\t}\n\t\t]\n\t}\n}\n``` \nA coluna \"IDFLUXO\" será controlada pela aplicação, no entanto se é necessário que haja uma sequência a ser inserida essa ordenação deverá ocorrer na nomeação do arquivo, conforme dito anteriormente;","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotvs%2Fwinthor-smart-hub-layouts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftotvs%2Fwinthor-smart-hub-layouts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftotvs%2Fwinthor-smart-hub-layouts/lists"}