← ClaudeAtlas

advpl-webservicelisted

Use ao criar/editar API REST ou SOAP no Protheus, escolher entre WSRESTFUL (clássico) e @Get/@Post (notation tlppCore — ~3x mais rápido, suporta @Patch + Swagger), migrar de uma pra outra, configurar PrepareIn + TenantId, validar JWT/OAuth2, ou revisar SEC-001 (RpcSetEnv em REST). Inclui pegadinhas como ::SetResponse cumulativo, WSMETHOD sub-nome, requisitos de versão (notation precisa AppServer 20+).
JoniPraia/plugadvpl · ★ 12 · API & Backend · score 66
Install: claude install-skill JoniPraia/plugadvpl
# advpl-webservice — REST e SOAP no Protheus ADVPL/TLPP suporta três famílias de Web Service: | Família | Sintaxe | Quando usar | |-------------------|--------------------------------------------|------------------------------------------------| | **REST clássico** | `WSRESTFUL` + `WSMETHOD GET/POST` | Mantida pra compat; ainda OK em código existente | | **REST tlppCore** | `@Get(endpoint=...)` em `User Function` | **Padrão moderno para novas APIs** (TLPP/AppServer 20+) | | **SOAP** | `WSSERVICE` + `WSDATA` + `WSMETHOD` | Legado; integração com sistema que exige WSDL | REST tlppCore **não é evolução do REST ADVPL** — é recurso novo, sem compat automática com autenticação user-based clássica nem pré-carga de banco. Cada cenário tem trade-offs. O AppServer Protheus expõe ambos via porta HTTP configurada em `appserver.ini` (`[HTTPV11]` para REST 2.0). ### Por que TOTVS recomenda notation pra projetos novos A TOTVS reescreveu a camada de accept REST em C++ no binário Lobo-Guará. O notation usa essa camada nova; o WSRESTFUL clássico continua na camada ADVPL antiga. Resultado documentado pela comunidade: | Métrica | WSRESTFUL clássico | Notation (`@Get/@Post/...`) | |---|---|---| | **Throughput** | linha-base | **~3× mais rápido** ([Every System](https://everysys.com.br/blog/tl-rest/), [gworks](https://www.gworks.com.br/post/totvs-rest)) | | **Verbos** | GET, POST,