Pular para o conteúdo principal

U_ListFilter — allowlist no OpenAPI

Por padrão, tlpp.doc.generate() exporta todas as rotas encontradas na porta informada. O 6º parâmetro recebe o nome de uma User Function que monta uma allowlist: só os pares path + método listados entram no YAML/JSON.

Ligação com a geração

tlpp.doc.generate( 'swagger', 'api_doc', {8080}, {'en-us','pt-br'}, "", "U_ListFilter" )
ParâmetroValor neste exemplo
5º (cListFunc)"" — sem lista DOC de rotas dinâmicas
6º (cFilterFunc)"U_ListFilter" — callback de filtro

Sem o 6º parâmetro (ou com string vazia), o comportamento continua sendo documentar tudo da porta.

Como funciona

O motor instancia oFilter, chama a função e usa o objeto devolvido:

function U_ListFilter( oFilter ) as object

oFilter:add( "/rest/sample/doc/basic/01", "GET" )
oFilter:add( "/rest/sample/doc/basic/02", "GET" )
oFilter:add( "/rest/sample/doc/basic/03", "GET" )
oFilter:add( "/rest/sample/doc/basic/04", "GET" )

return oFilter

Cada oFilter:add( path, method ) é um par rota + verbo HTTP.

PathMétodoEntra no OpenAPI
/rest/sample/doc/basic/01GETsim
/rest/sample/doc/basic/02GETsim
/rest/sample/doc/basic/03GETsim
/rest/sample/doc/basic/04GETsim

Qualquer outra rota da porta (básicos /05, completo, dinâmicos, etc.) fica de fora.

Regras

  1. Allowlist — só o que você add é exportado.
  2. Path + método — o mesmo path com verbos diferentes exige uma linha por verbo.
  3. Path params — use a sintaxe TLPP (:param), alinhada à declaração da rota.
  4. Não cria rotas — apenas filtra a geração; a API e os metadados DOC precisam existir.
  5. Diferente do 5º parâmetroU_ListDOCFunctions / tlpp.doc.List() associa DOC a rotas dinâmicas; U_ListFilter só decide o que entra no arquivo final.

Gatilho HTTP

GET /rest/sample/doc/generate

O endpoint de exemplo chama tlpp.doc.generate(..., "", "U_ListFilter") e grava o arquivo na raiz do AppServer.

Relação com List dinâmico

CallbackParâmetro de generatePapel
List dinâmicoMapear DOC de rotas sem annotation
Filtro de rotasRestringir quais paths/métodos entram no OpenAPI

Os dois podem ser usados juntos: passe a função de lista no 5º e a de filtro no 6º.