Annotations
Use annotations para mapear verbos HTTP diretamente em funções ou métodos compilados no RPO, sem arquivo externo de rotas.
Se você acabou de concluir o Quickstart, já usou @Get — esta página explica os demais verbos e opções da annotation.
Trilha deste bloco (Servidor e rotas)
| Etapa | O que você aprende | Comece em |
|---|---|---|
| 1 — Annotations | @Get / @Post e propriedades | Esta página |
| 2 — Sem annotation | LoadURNs e rotas dinâmicas | Sem annotation |
| 3 — Referência INI | Chaves do appserver.ini | Referência INI |
| 4 — Referência JSON | Configuração via JSON | Referência JSON |
| 5 — Avisos e dicas | Cuidados antes do oREST | Avisos e dicas |
Verbos
| Annotation | Uso típico |
|---|---|
@Get | Ler recurso |
@Post | Criar recurso |
@Put | Substituir recurso |
@Patch | Atualizar parcialmente |
@Delete | Remover recurso |
Propriedades da annotation
| Propriedade | Obrigatório | Função |
|---|---|---|
endpoint | Sim | URN da rota, relativa ao path virtual do INI |
description | Não | Texto para documentação OpenAPI (trilha Doc Generate, opcional para expor a API) |
title, params, responses | Não | Metadados OpenAPI adicionais na própria annotation |
Para expor a rota, só o endpoint importa. Os demais campos são opcionais e servem para o Doc Generate.
Exemplo — roteamento
@Get("users/:id")
User Function getUser()
Local jParams := oRest:getPathParamsRequest()
// jParams["id"] contém o valor capturado na URL
Return .T.
Path params usam :nome no endpoint. O valor fica disponível via oRest:getPathParamsRequest() — você verá os detalhes em Leitura da requisição (seção oREST).
Exemplo — com metadados OpenAPI (opcional)
Se você também quer gerar documentação OpenAPI a partir do código, pode enriquecer a annotation com title, description, params e responses. A API funciona igual — esses campos só alimentam o motor REST-DOC:
Para o detalhe de cada propriedade (description, params, responses, i18n, etc.), use a trilha Doc Generate quando for documentar a API — não é necessário para o primeiro endpoint funcionar. O statusCode em responses é descritivo; o status real depende de oRest:setStatusResponse() no código.
Exemplos no GitHub
Verbos HTTP e annotations em Configurações e Verbos · GET:
totvs/tlpp-sample-rest — src/verbs/get/exemplo_get_classe.tlpp
Próximo passo: Sem annotation