Inicia a declaração de uma classe REST (Server) em AdvPL.

Abrangência

ERP 11 e superiores

Sintaxe

WSRESTFUL <cServiceName> DESCRIPTION <cDescription> [SECURITY <cSecurity>] [FORMAT <cFormat>] [SSL ONLY]

Parâmetros

NomeTipoDescriçãoObrigatórioReferência
cServiceNameCaracterIndica o nome da classe REST que será declarada. O nome de uma classe REST, deve ser iniciada por um caractere alfabético e deve conter apenas os caracteres alfabéticos compreendidos entre A e Z, os caracteres numéricos compreendidos entre 0 e 9, podendo também ser utilizado o caracter "_" (underline). Um serviço não pode ter o nome de uma palavra reservada, da linguagem AdvPL, ou ter o nome igual a um tipo básico de informação.

O nome da classe REST é o mesmo utilizado na URI, desta forma, deve-se respeitar a estrutura de nomes permitidos na mesma.

X
cDescription CaracterInforme a descrição do serviço. Essa informação é utilizada na listagem dos serviços REST disponíveis no TOTVS| Application Server e serve como documentação do serviço.X
cSecurityCaracterInforme o nome da rotina que tem relação com a API REST (exemplo MATA030 ou MATA410), esse nome será utilizado para validação dos privilégios, permitindo assim o acesso ou não a API.

cFormatCaracterInforme o formato de exportação do serviço. Esta informação é utilizada na listagem dos serviços REST.

SSL ONLY-Indica que a classe só permitirá o acesso via conexão segura do tipo SSL (Secure Socket Layer).


Observações

  • Dentro da estrutura de um classe (Server) de REST, deve-se declarar os métodos disponibilizados da classe, propriedades, parâmetros e retornos utilizados. Para isso, utilize os comandos WSMETHOD e WSDATA.
  • Para encerrar a declaração da classe, utilize o comando END WSRESTFUL
  • Para utilizar este comando, é necessário declarar a #INCLUDE RESTFUL.CH no código-fonte AdvPL.
  • No parâmetro nomeado como FORMAT, apenas para o modo sem o uso de SSL, também é aceita a constante CONSUMES, mas seu efeito é o mesmo de utilizar FORMAT.
  • Para o conteúdo do parâmetro FORMAT estão definidas as seguintes constantes:

    APPLICATION_ATOM_XML
    APPLICATION_ATOM_XML_TYPE
    APPLICATION_FORM_URLENCODED
    APPLICATION_FORM_URLENCODED_TYPE
    APPLICATION_JSON
    APPLICATION_JSON_TYPE
    APPLICATION_OCTET_STREAM
    APPLICATION_OCTET_STREAM_TYPE
    APPLICATION_SVG_XML
    APPLICATION_SVG_XML_TYPE
    APPLICATION_XHTML_XML
    APPLICATION_XHTML_XML_TYPE
    APPLICATION_XML
    APPLICATION_XML_TYPE
    MEDIA_TYPE_WILDCARD
    MULTIPART_FORM_DATA
    MULTIPART_FORM_DATA_TYPE
    TEXT_HTML
    TEXT_HTML_TYPE
    TEXT_PLAIN
    TEXT_PLAIN_TYPE
    TEXT_XML
    TEXT_XML_TYPE
    WILDCARD
    WILDCARD_TYPE
    APPLICATION_XJAVASCRIPT
    APPLICATION_JAVASCRIPT
    TEXT_JAVASCRIPT

  • Sem rótulos