Versões comparadas

Chave

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

...

Informações
iconfalse

Na declaração do Serviço REST:

WSMETHOD <cVerb> [cId] DESCRIPTION <cDescription> [WSSYNTAX <cSintax>] [PATH <cPath>] [TTALK <cTTalkVersion>]

Na declaração do método:

WSMETHOD <cVerb> [cId] [QUERYPARAM <QueryParms>] [PATHPARAM <PathParms>] [HEADERPARAM <HeaderParms>] WSRESTFUL <WsRestFul>

...

NomeTipoDescriçãoObrigatórioReferência
cVerb-PUTPOSTGET ou DELETEX
cIdCaracterID para diferenciar e possibilitar a criação de métodos que utilizam verbos http repetidos

cDescriptionCaracterDescrição do método REST
cSintaxCaracterSintaxe HTTP da chamada REST. Esta informação é utilizada apenas para documentação do REST.

cPathCaracter

Definição do endpoint que irá acionar aquele método.

*Pode conter agrupamento, o nome da classe e os pathparms. (A partir da release 12.1.23 da lib, em jan./2019).



cTTalkVersionCaracterValor "v1" para sinalizar que o método utiliza o padrão de mensagem de erro do TTALK.

QueryParms-

Indica os parâmetros, separados por vírgulas, que este método receberá via QueryString.

O parâmetros indicados aqui devem ser declarados como WSDATA.



PathParms-Indica os parâmetros, separados por vírgulas, que este método receberá via path, ou seja, como parte da URL.

HeaderParms-Indica os parâmetros, separados por vírgulas, que este método receberá via Header na requisição HTTP.

WsRestFulCaracterIndica o nome da classe, do serviço, que o método atual pertence.X

...

  • Todo método deve retornar um valor lógico indicando se houve sucesso ou falha na execução do método. Em caso de falha deve-se especificar o motivo da falha através da função SetRestFault.
  • Somente as operações PUT, POST, GET e DELETE estão disponíveis como métodos REST.
  • O último parâmetro WSRESTFUL pode ser encontrado também como WSSERVICE ou WSREST. O comportamento é o mesmo nos 3 casos.
  • REST.
  • O último parâmetro WSRESTFUL pode ser encontrado também como WSSERVICE ou WSREST. O comportamento é o mesmo nos 3 casos.
  • O parâmetro QUERYPARAM também pode ser encontrado como WSRECEIVE e também tem o mesmo comportamento.
  • O parâmetro cTTalkVersion foi criado para manter a compatibilidade no padrão de mensagem de erro de API's que foram criadas antes da definição do padrão TTALK. Sem essa flag, a mensagem de erro possui as chaves errorCode e errorMessage. Quando é adicionado no método a flag TTALK "v1", o formato fica conforme o guia de API's com as chaves mudadas para code e message, além de outras novas. Link para o guia de implementação de API: http://tdn.totvs.com.br/pages/viewpage.action?pageId=274849083O parâmetro QUERYPARAM também pode ser encontrado como WSRECEIVE e também tem o mesmo comportamento.


Exemplo de métodos com verbos repetidos

...

WSMETHOD GET DESCRIPTION "Get no modelo antigo WSSYNTAX que não valida agrupamentos e nem path" WSSYNTAX "/thewsclass || /thewsclass/{id}" //Não possibilita utilizar outro GET
WSMETHOD POST ROOT DESCRIPTION "Post sem parâmetro de path" PATH "" //o PATH também poderia ser "/thewsclass" TTALK "v1"
WSMETHOD POST ID DESCRIPTION "Post com parâmetro de path anonimo" PATH "/thewsclass/{id}" //o PATH poderia ser apenas "/{id}"
WSMETHOD PUT DESCRIPTION "Put com parâmetros de path nomeados" PATH "/{path1}/fixedpart/{path2}"
WSMETHOD DELETE ROOT DESCRIPTION "Delete sem parâmetro de path" PATH "/product/group/thewsclass"
WSMETHOD DELETE ID DESCRIPTION "Delete com parâmetro de path" PATH "/product/group/thewsclass/{id}"

...