0% acharam este documento útil (0 voto)
80 visualizações

Webservice

Este documento fornece uma introdução aos conceitos de web services RESTful e REST em geral. Também discute ferramentas como SoapUI e Postman e como configurar web services RESTful no Protheus usando a classe FWAPIManager.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
80 visualizações

Webservice

Este documento fornece uma introdução aos conceitos de web services RESTful e REST em geral. Também discute ferramentas como SoapUI e Postman e como configurar web services RESTful no Protheus usando a classe FWAPIManager.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 17

PROTHEUS COM PAULO BINDO -

WEBSERVICE

APPSERVER
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice
• O que é REST
https://www.totvs.com/blog/developers/rest/
https://coodesh.com/blog/dicionario/o-que-e-rest/

• Instalar SoapUI
https://www.soapui.org/downloads/soapui/soapui-os-older-versions/

• Instalar Postman
https://www.postman.com/

• Consulta api totvs


https://api.totvs.com.br/
2
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – debug
• Conectar o VsCode no appserver rest

• Colocar o comando para conseguir compilar no appserver.ini


[General]
BuildKillUsers=1

• Habilitar para que o VsCode utilize multithread no debug

"enableMultiThread": true

3
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
• comando para conectar no servidor REST
http://localhost:8084/rest/api/crm/v2/Seller/

• Iniciar uma classe REST em ADVPL


https://tdn.totvs.com/display/public/framework/WSRESTFUL

• Iniciar um método web services em ADVPL


https://tdn.totvs.com/pages/releaseview.action?pageId=75269436

• Declarar variável WSDATA


https://tdn.totvs.com/pages/releaseview.action?pageId=75268977

4
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Class FWAPIManager

Classe utilizada para converter campos de API em campos protheus,

parsear Json recebidos, converter Jsons em arrays e controlar o De/PARA

entre Protheus e API de acordo com o ApiMap informado

Method New()

Método Construtor

@param cAdapter , caracter, Infor,a o adapter a ser utilizado para iniciar o objeto

@param cVersion , caracter, informa a versão do adapter

Method SetApiAdapter()

Método que atribui o nome do fonte responsável pelo Adapter

@param cAdapter , caracter, Infora o adapter a ser utilizado para iniciar o objeto

Method SetApiQstring()

étodo que seta o Fields, PageSize, Page, Order e Filtros no ApiMap


@param aQueryString , array, Parâmetros passados na chamada do WebService (Self:aQueryString)

5
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method SetApiVersion()

Método que atribui a versão do Swagger utilizado

@param cVersion , caracter, informa a versão do adapter

Method SetApiAlias()

Método que atribui o Alias e AliasApi da tabela Protheus

@param aAlias , array, Nome do Alias[1] e AliasApi[2] da tabela principal do adapter

Method SetApiHasNext()

Método que define se retornará ou não se existem mais páginas

@param lHasNext , lógica, Informa se o retornará o parâmetro de paginação ou não

Method SetApiFilter()

Método que atribui um filtro de pesquisa

@param aFilter , array, Array contendo o filtro a ser executado. Exemplo := {Alias,{alias.campo1 = xxx}, {alias.campo2 = yyy}}

6
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method SetApiFields()

Método que preenche os campos que serão retornados no WS

@param cFields , caracter, String com os campos da api. Ex: "code, number, date"

Method SetApiMap()

Método que atribui array com o ApiMap a ser utilizado

@param aApiMap , array, Dados do adapter utilizado no objeto

Method SetApiRelation()

Método que atribui array com relacionamento entre entidades, utilizado

quando o ADAPTER utiliza cabeçalho x Itens

@param aChildrenAlias , array , Nome do Alias Filho[1] e Alias Filho API[2]

@param aFatherAlias , array , Nome do Alias Pai[1] e Alias Pai API[2]

@param aConditions , array , Array contendo as amarrações entre pai e filho

@param cIndexKey , caracter, Ordem utilizada no alias filho

Method SetIndexKey()

Método que atribui a ordem do Alias principal

@param cIndexFather , caracter, Ordem utilizada no alias pai

7
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method SetJson()

Método que monta o objeto Json

@param lHasNext , lógico, Informa se existe mais páginas para consulta

@param aItens , array , Array contendo os dados encontrados

Method SetJsonObject()

Método que monta o objeto Json de acordo com os atributos atribuídos na classe

Method SetPage()

Método que atribui o número da página que o usuário irá navegar

Method SetPageSize()

Método que atribui a quantidade de registro por páginas

@nPageSize , Numérico, Número de registros por página

Method SetJsonError()

Método que monta o Json com as descrições dos erros ocorridos.

@param cCode , caracter, Código da mensagem

@param cMessage , caracter, Mensagem de erro.

@param cDetailedMessage , caracter, Detelhes da mensagem.

@param cHelpUrl , caracter, Url da publicação do help.

@param aDetails , array , Lista com os erros no formato

{{cCode,cMessage,cDetailedMessage,cHelpUrl}} 8
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method SetQuery()

Método para indicar a query a ser executada

@param cNickName , caracter, Nickname do ApiMap

@param cQuery , caracter, Query a ser executada sem o where, apenas com os joins

@param cGroup , caracter, Group By da Query

Method GetQuery()

Método para retornar uma query específica para o Nickname Informado

@param cNickName , caracter, Nickname do ApiMap

Method GetApiAdapter()

Método que retorna o nome do fonte responsável pelo Adapter

Method GetApiPage()

Método que retorna a página atual

Method GetApiPgSize()

Método que retorna o tamanho da páginação atual


9
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method GetApiFilter()

Método que retorna os filtros para um determinado alias

@param cInfoItem, caracter, nome do alias do modelo a ser pesquisado

Method GetExpFilter()

Método que retorna os filtros para um determinado elemento

@param cInfoItem, caracter, nome do elemento do modelo a ser pesquisado

Method GetProtField()

Método que retorna o nome do campo Protheus de acordo com o AliasAPi e FieldApi

@param cNickAlias, caracter, nome do alias do modelo (API) a ser pesquisado

@param cFieldApi, caracter, nome do campo do modelo (API) a ser pesquisado

Method GetEstJson()

Método para retornar a strutura json de acordo com o APIMAP

@param lTran, Lógico, Retorna os nomes oficiais, senão, retorna a estrutura com base no nickname

10
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method GetApiVersion()

Método que retorna a versão do Swagger utilizado

Method GetApiMap()

Método que retona array com mapa do Swagger utilizado

Method GetApiRelation()

Método que retorna array com relacionamento entre entidades, utilizado

quando o ADAPTER utiliza cabeçalhoxItens

Method GetApiAlias()

Método que retorna o Alias da tabela Protheus usada pelo RESTFull

Method GetApiFields()

Método que retorna os campos que serão retornados pelo Adapter

Method GetJsonObject()

Método que retorna o objeto Json da classe


11
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method ToJsonArray()

Retorna tipo array em formato json

Method GetJsonArray()

Método que converte a mensagem em array

Method GetJsonSerialize()

Método que retorna o objeto Json serealizado

Method ToObjectJson()

Método que retorna o JsonSerializado apanas para um objeto e não um array de objetos.

Method ToArray()

Função para retornar o prefixo de cada objeto do json recebido

@param cBody , caracter , Estrutura de dados de acordo com o relacionamento declarados

@param oAPIManager , objeto , NickName Alias filho

@return aRet , array , Retorno com 3 posições: [1] Cabeçalho, [2] Items, [3] Objetos

12
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method DisplayEmptyFld()

Habilita a exibitação de campos sem conteudo no retorno da requisição.

@param lDplEmptyFld , logico , Permite a exibição de campos vazios

Method ToExecAuto()

Função para retornar o prefixo de cada objeto do json recebido

@param nTipo , numérico , Tipo de Retorno: 1 - Cabeçalho, 2 - Item

@param aDados , array , Dados retornados através do método ToArray

@return aRet , array , Dados tratados para o Execauto

Method GetOrderKey()

Método que retorna o índice utilizado na tabela pai

Method GetProtInfo()

Método que retorna um array com alias, alias api e campos do Protheus

@param cFields , caracter, Campos da Api

13
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – WRESTFul
Method GetJsonError()

Método que retorna os erros setados na API.

Method Activate()

Realiza as validações para ativar o modelo.

Method IsActive()

Método que retorna se o objeto está ativo

Method Destroy()

Método que destroi o objeto

14
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – Autenticação
Autenticação básica
https://tdn.totvs.com/display/tec/oAuth
https://tdn.totvs.com/display/public/framework/Exemplo+de+consumo+com+HTT
P+Basic

Autenticação com SSQ/TLS


https://tdn.totvs.com/pages/viewpage.action?pageId=319789062
https://tdninterno.totvs.com/pages/viewpage.action?pageId=6064865

15
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – TLPP
• Linguagem TL++
https://tdn.totvs.com/display/tec/Produtos+do+tlppCore
• REST server (tlppCore)
https://tdn.totvs.com/display/tec/REST
• Json
https://tdn.totvs.com/display/tec/Json
• Guia de referência das classes AdvPL
https://tdn.totvs.com/display/tec/AdvPL+-+Classes
• Guia de referência das classes AdvPL
https://tdn.totvs.com/display/tec/AdvPL+-+Classes
• FWAdapterBaseV2
https://tdn.totvs.com/display/public/framework/09.+FWAdapterBaseV2
16
PROTHEUS COM PAULO BINDO - POUI
MÓDULO – Webservice – TLPP
• Acessar lista de api
https://tdn.totvs.com/pages/viewpage.action?pageId=553900578
Exemplo: http://localhost:8084/rest/tlpp/rest/list/service
• Métricas de tempos
https://tdn.totvs.com/pages/viewpage.action?pageId=553900594
Habilitar via http:
http://localhost:8084/rest/tlpp/rest/usage/time?rest_trace_time=1
Leitura tempo: http://localhost:8084/rest/tlpp/rest/usage/time

17

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy