Histórico da Página
...
Substitui o cOrder padrão definida pelo método SetOrder
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
cOrder | Carácter | String contendo a ordenação que irá ser utilizada no ResultSet |
...
SetFields
Descrição
Informa os campos que serão utilizados para geração do Json
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
cFields | Carácter | Campos que serão exportados para o Json, utilizado para setar os campos informados via QueryParam |
...
Execute
Descrição
Realiza o parse dos ids #QueryFields# e #QueryWhere# gerando o ResultSet
...
Bloco de código |
---|
#include "totvs.ch" #include "restful.ch" //------------------------------------------------------------------- /*/{Protheus.doc} products Declaração do ws products @author Anderson Toledo /*/ //------------------------------------------------------------------- WSRESTFUL products DESCRIPTION 'endpoint products API' FORMAT "application/json,text/html" WSDATA Page AS INTEGER OPTIONAL WSDATA PageSize AS INTEGER OPTIONAL WSDATA Order AS CHARACTER OPTIONAL WSDATA Fields AS CHARACTER OPTIONAL WSMETHOD GET ProdList; DESCRIPTION "Retorna uma lista de produtos"; WSSYNTAX "/api/v1/products" ; PATH "/api/v1/products" ; PRODUCES APPLICATION_JSON END WSRESTFUL WSMETHOD GET ProdList QUERYPARAM Page WSREST products Return getPrdList(self) Static Function getPrdList( oWS ) Local lRet as logical Local oProd as object DEFAULT oWS:Page := 1 DEFAULT oWS:PageSize := 10 DEFAULT oWS:Fields := "" lRet := .T. //PrdAdapter será nossa classe que implementa fornecer os dados para o WS // O primeiro parametro indica que iremos tratar o método GET oProd := PrdAdapter():new( 'GET' ) //o método setPage indica qual página deveremos retornar //ex.: nossa consulta tem como resultado 100 produtos, e retornamos sempre uma listagem de 10 itens por página. // a página 1 retorna os itens de 1 a 10 // a página 2 retorna os itens de 11 a 20 // e assim até chegar ao final de nossa listagem de 100 produtos oProd:setPage(oWS:Page) // setPageSize indica que nossa página terá no máximo 10 itens oProd:setPageSize(oWS:PageSize) // SetOrderQuery indica a ordem definida por querystring oProd:SetOrderQuery(oWS:Order) // setUrlFilter indica o filtro querystring recebido (pode se utilizar um filtro oData) oProd:SetUrlFilter(oWS:aQueryString ) // SetFields indica os campos que serão retornados via querystring oProd:SetFields( oWS:Fields ) // Esse método irá processar as informações oProd:GetListProd() //Se tudo ocorreu bem, retorna os dados via Json If oProd:lOk oWS:SetResponse(oProd:getJSONResponse()) Else //Ou retorna o erro encontrado durante o processamento SetRestFault(oProd:GetCode(),oProd:GetMessage()) lRet := .F. EndIf //faz a desalocação de objetos e arrays utilizados oProd:DeActivate() oProd := nil Return lRet |
...
Bloco de código |
---|
http://localhost:8080/teste/rest/api/v1/products?filter=code eq '000001' |
Filtro utilizando ordenação
Bloco de código |
---|
http://localhost:8080/teste/rest/api/v1/products?order=description |
Filtro informando os campos que serão retornados
Bloco de código |
---|
http://localhost:8080/teste/rest/api/v1/products?fields=cod,description |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas