Árvore de páginas

Versões comparadas

Chave

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

...

O objetivo deste documento é mostrar como devem ser utilizados os modelos de dados existentes no módulo Pré-faturamento de Serviços (SIGAPFS), que usam o modelo padrão FWRESTMODEL.

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.

Esses métodos são fundamentais para a comunicação entre clientes e servidores e cada um tem um propósito específico, como:

  • GET: é usado para consultar algum dado do servidor, assim não realizando qualquer modificação neles, como por exemplo, uma consulta de cadastro.
  • POST: é usado para enviar dados para serem processados ou armazenados no servidor, como por exemplo, uma inclusão de cadastro.
  • PUT: é usado para atualizar algum dado do servidor, como por exemplo, uma alteração de cadastro.
  • DELETE: é usado para remover algum dado do servidor. como por exemplo, uma exclusão de cadastro


Informações
titleObservação

Por padrão, para realizar o consulta de um determinado dado do servidor através do método GET, é necessário informar a pk - valor da chave primária do alias do modelo encodado em base64. Caso não seja informado, serão retornados os registros conforme sua paginação.


Exemplo:

"ICAgIDAwMDAwMDAwMDAwMDIyOA==" - representa a chave primária do registro da tabela da rotina em base64

http://localhost:8080/rest/FwModel/EICCP400/ICAgIDAwMDAwMDAwMDAwMDIyOA==


Para realizar a atualização de um determinado dado do servidor através do método PUT, é necessário informar a pk - valor da chave primária do alias do modelo encodado em base64, nesse caso, é obrigatório para realizar a alteração. Caso contrário, é entendido que está sendo feita uma inclusão.

Para realizar a exclusão de um determinado dado do servidor através do método DELETE, é necessário informar a pk - valor da chave primária do alias do modelo encodado em base64.

...

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

{
    "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"
                                }
                            ]
                        }
                    ],
                }
            ],
        }
    ]
}

Onde:

id: é id da API

models: são os modelos de negócios de cada API, ou seja, modelo de dados do MVC, que é definido por:

...

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:

{
    "id": "ID_API",
    "pk": "ICAgIDAwMDAwMDAwMDAwMDAxOQ==",
    "models": []
}

Onde:

id: é id da API

pk: chave primária de cada registro para realizar uma consulta específica, consumir o método put e delete

...

A estrutura do JSON de resposta para o método GET sem determinar uma chave primária (pk), será da seguinte maneira:

{
    "total": 82,
    "count": 10,
    "startindex": 1,
    "resources": [{
            "id": "ID_API",
            "pk": "ICAgIDAwMDAwMDAwMDAwMDAxOQ==",
            "models": []
        }, {
            "id": "ID_API",
            "pk": "ICAgIDAwMDAwMDAwMDAwMDAxOQ==",
            "models": []
        }
    ]
}

Onde:

total: é o total de registros que existem no sistema

...

A estrutura do JSON de resposta para o método DELETE da seguinte maneira:

true


A estrutura do JSON de resposta com falha, será da seguinte maneira:

{
    "errorCode": 400,
    "errorMessage": "\r\n --- Erro no Modelo ---\r\nId submodelo origem:[EK9MASTER]\r\nId campo origem:[EK9_COD_I]\r\nId submodelo erro: [EK9MASTER]\r\nId campo erro: [EK9_COD_I]\r\nId erro: [JAGRAVADO ]\r\nMensagem de erro: [ Já existe registro com esta informação.]\r\nMensagem da solução: [Troque a chave principal deste registro.\r\n]\r\nValor atribuído: []\r\nValor anterior: [4234234290     ]\r\n"
}

05. EXEMPLO DE CONFIGURAÇÃO

Abaixo um exemplo de configuração do arquivo appserver.ini
Exemplo 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

...

06. APIs REST DISPONÍVEIS 

As APIs REST disponíveis do módulo Pré-faturamento de Serviços são:

DescriçãoModeloApelido
Parâmetros

JURA171

JPARAM

Empresas / filiaisJURA193JEMPRESA
Fila de SincronizaçãoJURA170JFILASINC
Idiomas de FaturamentoJURA029JIDIOMA
Moedas ContábeisCTBA140JMOEDA
Centros de Custos / Grupos JurídicosCTBA030JGRPJUR
Cotações DiáriasMATA090JCOTDIARIA
Lançamentos TabeladosJURA027JLANCTAB
Fechamento de PeríodoJURA030JFECHPER
Áreas JurídicasJURA038JAREAJUR
Tipos de DespesaJURA044JTPDESP
DespesasJURA049JDESPESA
EscritóriosJURA068JESCRITORIO
CasosJURA070JCASO
Contratos de FaturamentoJURA096JCONTRATO
Time SheetsJURA144JTIMESHEET
ClientesJURA148JCLIENTE
ParticipantesJURA159JPARTICIPANTE
Pré-faturasJURA202JPREFAT
Modelo resumido de Pré-faturaJURA202EJURA202RES
FaturasJURA204JFATURA
MunicípiosFISA010JMUNICIPIO
PaísesJURA194JPAIS
EstadosJURA195JESTADO
Tipos de HonoráriosJURA037JTPHONOR
Tipos de AtividadeJURA039JTPATIV
Serviços TabeladosJURA040JSERVTAB
Tabela de ServiçosJURA041JTABSERV
Tipo de OriginaçãoJURA045JTPORIG
Tipo da Tabela de ServiçosJURA047JTPTABSERV
Subárea JurídicaJURA048JSUBAREAJUR
Categoria de ParticipanteJURA050JCATEGPART
Documento E-billingJURA057JDOCEBILL
Empresa E-billingJURA058JEMPEBILL
FeriadosJURA078JFERIADO
Cotações MensaisJURA111JCOTMENSAL
LocalidadesJURA123JLOCALIDADE
Tipo de Prestação de ContasJURA164JTPPREST
Tipo de Retorno / Situação de CobrançaJURA073JTPRET
Grupo de ClientesFATA110JGRPCLI
Condição de PagamentoMATA360JCONDPAG
Motivo de WOJURA140JMOTIVOWO
AnexosJURA026JANEXOS
ContatosJURA232JCONTATOS
Tabela de HonoráriosJURA042JTABHONOR
Faturas AdicionaisJURA033JFATADIC
Solicitações de DespesaJURA235JSOLICDES
Consulta WOJURA146JCONSULTWO
Naturezas FinanceirasFINA010JNATUREZA
Tabelas de RateioJURA238JTABRATEIO
Lançamentos FinanceirosJURA241JLANCAMENTOS
OrçamentosJURA252JORCAMENTOS
Calendário ContábilJURA253JCALENDARIO
Controles de AdiantamentosJURA069JADIANTAMENTO
Posição Histórica do Contas a ReceberJURA255JPOSRECEBER
Rastreio de Recebimento dos Casos da FaturaJURA256JRASTRECEBER
BancosMATA070JBANCO
Projetos e FinalidadesJURA264JPROJETO
FornecedoresMATA020JFORNECE
CobrançaJURA244JCOBRANCA
SegmentosCRMA610JSEGMENTO
Anexos (NUM)JURA290JDOCANEXO
Tabela de Honorários PadrãoJURA028JTABPADRAO
Controle de Versão Legal DeskJURA300-
Movimentações em AdiantamentosJURA311JMOVADIANT
Tipos de FaturaJURA036JTPFAT
Motivos de Cancelamento de FaturaJURA071JMOTCANFT
Classificação de NaturezasJURA266JCLNAT
Tipo de Carta de CobrançaJURA043JTPCARTA
Tipo de Relatório de FaturamentoJURA046JTPRELFAT
Tipo de FechamentoJURA274JTPFECH
Exceções da Numeração da FaturaJURA075JEXNUMFAT
Tipos de Relatório de Pré-faturaJURA196JTPRELPFT
Sugestão Título do CasoJURA231JSTITCAS
Ramais por ProfissionalJURA034JRAMPROF
Retificação de Time SheetJURA072JRETTS
Moedas BloqueadasJURA121JCMOEBLQ
Tipos de Protocolo de FaturamentoJURA084JTPPROTFT

...

07.

...

EXEMPLO DE UTILIZAÇÃO

Todos os modelos listados acima usam o padrão FWMODEL. Suportam todas as operações (POST PUT, GET, DELETE) RESTFUL. A documentação completa pode ser vista no documento FWRestModel.

...

INTERNALID = Indica se deve retornar o ID (Recno) como informação complementar das linhas do GRID (padrão: false)

Card documentos
InformacaoConsulte a documentação https://tdn.totvs.com/pages/releaseview.action?pageId=271671548 para mais detalhes técnicos.
TituloIMPORTANTE!

...

08. ASSUNTOS RELACIONADOS