Pular para o conteúdo principal

Classe RestDoc (oDoc)

A classe RestDoc (tlpp.doc) é o objeto nativo que o REST_DOC instancia e entrega por parâmetro à sua função de documentação. Com ele você descreve título, parâmetros, body e respostas sem precisar conhecer a estrutura JSON interna — o próprio objeto serializa tudo ao final.

Versão mínima

Recurso disponível a partir da versão 01.07.01 do tlppCore.

Como receber o objeto

#include 'tlpp-doc.th'

function U_meuEndpoint_DOC( oDoc )

// Validação recomendada
if ( !valtype(oDoc) == "O" .or. !MethIsMemberOf(oDoc,"isa") .or. !oDoc:isa("RestDoc") )
return ""
endif

oDoc:setTitle("Meu endpoint")
oDoc:addDescription("Descrição da API.")
// ... parâmetros, body, respostas

return

O include tlpp-doc.th é obrigatório — ele define as constantes de localização (_query_, _path_, _header_) e tipo (_char_, _int_, _numeric_, _logical_).


Constantes disponíveis (tlpp-doc.th)

GrupoConstanteSignificado
Localização (in)_query_Query String
_path_Path Param
_header_Header HTTP
Tipo do parâmetro_char_character
_int_integer
_numeric_number
_logical_boolean
Content-type (body)_json_application/json
_xml_application/xml
_csv_text/csv
_txt_text/plain

Verificação de tipo

Verificação de tipo do objeto RestDoc.

Retorna .T. se cClassName for "restdoc" ou "rest_doc" (case-insensitive). Use para verificar se o objeto recebido por parâmetro é do tipo correto antes de utilizá-lo.

Retornological
DescriçãoVerdadeiro quando o nome informado corresponde à classe RestDoc.

Tratamento de erros

Consultar erros ocorridos durante a construção da documentação.

Retorna .T. se houver um erro registrado durante a construção da documentação.

Retornological
DescriçãoVerdadeiro quando existe ao menos um erro.

Título

Definir e consultar o título do endpoint documentado.

Define o título do endpoint. Retorna .F. se o valor informado for vazio.

Retornological
DescriçãoVerdadeiro quando o título foi definido com sucesso.

Descrição

Construir descrições multi-linha para o endpoint.

Adiciona uma linha de descrição ao endpoint. Pode ser chamado várias vezes para compor texto multi-linha. Retorna .F. se a string for vazia.

Retornological
DescriçãoVerdadeiro quando a linha foi adicionada.

Parâmetros (query, path, header)

Documentar parâmetros de entrada recebidos via query string, path param ou header HTTP.

Cria um novo parâmetro e retorna seu índice numérico. Use esse índice nos demais métodos setParam*.

Retornonumeric
DescriçãoÍndice do parâmetro criado.

Body (Request Body)

Documentar o corpo da requisição HTTP — content-type, obrigatoriedade e componentes.

Define descrição, obrigatoriedade e content-type do body de uma vez (forma compacta).

Retornological
DescriçãoVerdadeiro quando definido com sucesso.

Respostas (Responses)

Documentar os possíveis retornos HTTP do endpoint — status codes, descrições e componentes.

Cria uma nova resposta e retorna seu índice. Ambos parâmetros são opcionais — podem ser informados aqui ou via setters individuais.

Retornonumeric
DescriçãoÍndice da resposta criada.

Exportação

Gerar o JSON final de documentação. Uso interno do REST_DOC — o desenvolvedor normalmente não precisa chamar.

Gera o JSON de documentação no formato esperado pelo REST_DOC. O parâmetro é passado por referência e recebe o resultado. Para o desenvolvedor final, esse método não precisa ser utilizado pois o REST_DOC o invoca internamente.

Retornological
DescriçãoVerdadeiro se o JSON foi gerado com sucesso.

Método de uso interno. O REST_DOC chama toJson() automaticamente ao final da execução da função DOC.


Exemplos no GitHub

ExemploO que demonstra
Básico com objetooDoc com parâmetros e respostas simples
Avançado com objetoTodos os recursos: enum, body, componentes, i18n

Próximo passo: List dinâmico