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âmetro | Valor 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.
| Path | Método | Entra no OpenAPI |
|---|---|---|
/rest/sample/doc/basic/01 | GET | sim |
/rest/sample/doc/basic/02 | GET | sim |
/rest/sample/doc/basic/03 | GET | sim |
/rest/sample/doc/basic/04 | GET | sim |
Qualquer outra rota da porta (básicos /05, completo, dinâmicos, etc.) fica de fora.
Regras
- Allowlist — só o que você
addé exportado. - Path + método — o mesmo path com verbos diferentes exige uma linha por verbo.
- Path params — use a sintaxe TLPP (
:param), alinhada à declaração da rota. - Não cria rotas — apenas filtra a geração; a API e os metadados DOC precisam existir.
- Diferente do 5º parâmetro —
U_ListDOCFunctions/tlpp.doc.List()associa DOC a rotas dinâmicas;U_ListFiltersó 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.
totvs/tlpp-sample-rest-documentation — src/rest/generator/openapi_generator.tlpp
Relação com List dinâmico
| Callback | Parâmetro de generate | Papel |
|---|---|---|
| List dinâmico | 5º | Mapear DOC de rotas sem annotation |
| Filtro de rotas | 6º | Restringir 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º.