Páginas filhas
  • SetRestFault

Versões comparadas

Chave

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

...

{ {nCode,cMessage,cDetailMsg,cHelpUrl,{}} }Obs.:



Informações
titleTTALK

Para que os parâmetros cDetailMsg, cHelpUrl e aDetails sejam retornados pela função SetRestFault, é necessário que a API esteja no padrão TTALK: API Protheus com mensagens de erro no padrão TTALK

Informações
titleGuia de Implementação de API

Para mais detalhes sobre a estrutura da mensagem de erro, veja o Guia de Implementação de API:

...

 https://tdn.totvs.com.br/pages/viewpage.action?pageId=274849083#GuiadeImplementa%C3%A7%C3%A3odeAPI-Mensagensdeerromensagensdeerro


Exemplo

Bloco de código
themeConfluence
linenumberstrue
#INCLUDE "TOTVS.CH"
#INCLUDE "RESTFUL.CH"
#INCLUDE "FWMVCDEF.CH"
#INCLUDE "FWSCIMUSERS.CH"


WSRESTFUL Users DESCRIPTION "Descrição"

WSDATA cResponse   AS STRING
WSDATA Count      AS INTEGER OPTIONAL
WSDATA StartIndex AS INTEGER OPTIONAL 


WSMETHOD GET DESCRIPTION "GET"
WSMETHOD POST DESCRIPTION "POST"
WSMETHOD PUT DESCRIPTION "PUT"
WSMETHOD DELETE DESCRIPTION "DELETE"


END WSRESTFUL


WSMETHOD GET WSRECEIVE StartIndex,Count  WSSEND cResponse WSSERVICE Users
Local uUserId     := ""
Local cJson       := ""
Local lRetorno    := .T.
Local aUsers      := {}
Local oUser
Local oGroup
Local oSuper
Local nMax        := 0
Local nX          := 0
Local nUser       := 0
Local nMaxUser    := 1
Local nCountUser  := 0
Local nCount      := 0 
Local nStartIndex := 1
::cResponse := ""
//--------------------------------------
//Pesquisa o código do usuário que vem na URL, exemplo:
//
// GET /Users/2819c223-7f76-453a-919d-413861904646
// Host: example.com
// Accept: application/json
// Authorization: Bearer h480djs93hd8
// 
//--------------------------------------
If Len(::AURLPARMS) > 0
	If Len(::AURLPARMS) > 1
		lRetorno := .F.
		SetRestFault(001,STR0001) //"Excesso de parâmetros na URL. Apenas um é permitido para este método"	
	EndIf
	//--------------------------------------
	//List/Query Resources:
	//
	// GET /Users?startIndex=1&count=10
	// Host: example.com
	// Accept: application/json
	// Authorization: Bearer h480djs93hd
	//
	//--------------------------------------		
Else 		
	...				
EndIf
//--------------------------------------
// Verifica se a saída é JSON
//--------------------------------------
If ::cFormat <> "json"
	lRetorno := .F.
	SetRestFault(002,STR0002) //"Somente o formato json é permitido"
EndIf
If lRetorno
	...
	::cResponse := cJson	
EndIf
Return(lRetorno)