Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Substituir o título Título da página por: Integração do MÓDULO via API REST, onde MÓDULO é o nome do módulo em questão.

CONTEÚDO

  1. Visão Geral
  2. Conceito
  3. Estrutura de Envio
  4. Estrutura de Respostas
  5. Exemplo de Configuração
  6. API REST disponíveisCatálogo de ProdutosREST disponíveis
  7. Assuntos relacionados

Âncora
visao_geral
visao_geral

01. VISÃO GERAL

Disponibilizar recursos para facilitar a integração das rotinas do MÓDULO (incluir o nome do MÓDULO em questão) com a utilização da tecnologia de APIs REST.

Âncora
conceito
conceito

02. CONCEITO

A integração via APIs REST permite a comunicação entre diferentes sistemas ou aplicativos por meio de APIs que seguem o padrão REST, onde essas APIs utilizam métodos HTTP padrão, como GET, POST, PUT e DELETE, com objetivo de permitir que sistemas compartilhem dados e funcionalidades de maneira eficiente e escalável.

...

Âncora
envio_json
envio_json

03. ESTRUTURA DE ENVIO

A estrutura do JSON de envio (body) para os métodos GET e DELETE não tem necessidade de informar na requisição, somente realizar o consumo da API.

Já para o método POST e PUT, deverá ser enviado basicamente no formato:

Bloco de código
languageyml
{
    "id": "ID_API",
    "models": [{
            "id": "MODELO_DADOS",
            "modeltype": "FIELDS"
            "fields": [{
                    "id": "CAMPO",
                    "order": 1,
                    "value": ""
                }, {
                    "id": "CAMPO2",
                    "order": 2,
                    "value": "01"
                }
            ],
            "models": [{
                    "id": "SUBMODELO_DADOS",
                    "modeltype": "GRID"
                    "struct": [{
                            "id": "CAMPO",
                            "order": 1
                        }, {
                            "id": "CAMPO2",
                            "order": 2
                        }
                    ],
                    "items": [{
                            "id": 1,
                            "fields": [{
                                    "id": "CAMPO",
                                    "value": "001"
                                }, {
                                    "id": "CAMPO2",
                                    "value": "01"
                                }
                            ]
                        }, {
                            "id": 2,
                            "fields": [{
                                    "id": "CAMPO",
                                    "value": "002"
                                }, {
                                    "id": "CAMPO2",
                                    "value": "02"
                                }
                            ]
                        }
                    ],
                }
            ],
        }
    ]
}

...

04. ESTRUTURA DE RESPOSTAS

A estrutura do JSON de resposta para os métodos GET (para um determinado uma chave primária - pk), POST e PUT é basicamente da seguinte maneira:

Bloco de código
languageyml
{
    "id": "ID_API",
    "pk": "ICAgIDAwMDAwMDAwMDAwMDAxOQ==",
    "models": []
}

...

05. EXEMPLO DE CONFIGURAÇÃO

Abaixo um exemplo de configuração do arquivo appserver.ini

Bloco de código
languageyml
titleExemplo de configuração appserver.ini
[HTTPV11]
Enable=1
Sockets=HTTPREST

[HTTPREST]
Port=8080
URIs=HTTPURI
SECURITY=1

[HTTPURI]
URL=/rest
PrepareIn=99,01
Instances=1,2

[ONSTART]
jobs=HTTPJOB
RefreshRate=120

[HTTPJOB]
MAIN=HTTP_START
ENVIRONMENT=ENVIRONMENT

Âncora
api_disponiveis
api_disponiveis

06. API REST DISPONÍVEIS 

Após a configuração do REST do Protheus, podemos verificar todas as APIs REST disponível:

  • acessar o endereço configurado do Rest, nesse exemplo foi configurado dessa forma http://localhost:8080/rest
  • procurar o serviço FWMODEL
  • clicar em /rest/fwmodel.catalog.

...