Árvore de páginas

Versões comparadas

Chave

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

...

  1. Visão Geral
  2. Conceito
  3. Estrutura de envio
  4. Estrutura de respostas
  5. Exemplo de configuração
  6. APIs REST disponíveis
  7. Exemplo de utilização
  8. Assuntos Relacionados

01. VISÃO GERAL

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.

...

  • 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 informadoinformada, 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 . Nesse caso, é obrigatório para realizar a alteração. Caso , 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.

...

{
    "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:

id: é o modelo de dados definido no MVC

modeltype: é tipo de modelo de dados, "FIELDS" ou "GRID"

fields: é um vetor com os campos do modelo, definido por:

id: é nome do campo

order: é a ordem do campo

value: é o valor do campo

models: é um vetor com os submodelos do modelo de dados do MVC, definido por:

id: é o submodelo de dados definido no MVC

modeltype: é tipo de modelo de dados, "FIELDS" ou "GRID"

struct: é um vetor definindo os campos do GRID, definido por:

id: é nome do campo

order: é a ordem do campo

items: é um vetor definindo os itens do GRID, definido por:

id: é um

...

sequencial do vetor dos itens,

fields: é um vetor com os campos e valores dos itens do GRID, definido por: 

id: é nome do campo

value: é o valor do campo

04. ESTRUTURA DE RESPOSTAS

...

{
    "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

models: são os modelos de negócios de cada API, ou seja, modelo de dados do MVC (FIELDS, GRID)


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

count: é a quantidade de registros retornados na requisição

startindex: é a contador inicial para realizar a paginação

resources: são as informações dos modelos de dados da API, composto por:

id: é id da API

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

models: são os modelos de negócios de cada API, ou seja, modelo de dados do MVC (FIELDS, GRID)


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

...

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.

A API pode retornar todos os registros ou apenas um registro específico. Para acessar um registro específico, deve ser informada a chave única do registro em formato BASE64.

Exemplo para o modelo de Time Sheets:

A chave da tabela de processos é NUE_FILIAL + NUE_COD

GET para retornar todos os registros:

<HTTPRESTCLIENTE:/fwmodel/jura144/

Se quisermos retornar um registro específico (registro filial 01 código 0000000001:

<HTTPRESTCLIENTE:/fwmodel/jura144/MDEwMDAwMDAwMDAx

A estrutura de retorno é a mesma estrutura que deve ser usada em operações como PUT e POST.


QueryStrings

COUNT = Quantidade de registro que devem ser retornados (padrão: 10)

...