Commit 8798071
feat: redesign consumed REST client syntax and add full mapping support
Redesigns CREATE REST CLIENT to use property-based {} syntax aligned
with CREATE PUBLISHED REST SERVICE:
CREATE REST CLIENT Module.Api (
BaseUrl: 'https://...',
Authentication: NONE
)
{
OPERATION GetItems {
Method: GET,
Path: '/items/{id}',
Parameters: ($id: String),
Query: ($q: String),
Headers: ('Accept' = 'application/json'),
Response: MAPPING Module.ItemResponse {
"Id" = "id",
}
}
};
New capabilities:
- Body: TEMPLATE '...' (Rest$StringBody with value template)
- Body: MAPPING Entity { jsonField = Attr } (Rest$ImplicitMappingBody)
- Response: MAPPING Entity { Attr = jsonField } (Rest$ImplicitMappingResponseHandling)
- Nested object mappings: CREATE Assoc/Entity = jsonField { ... }
- JsonPath comments in DESCRIBE for tracing JSON flattening
- Query param types now parsed correctly (was hardcoded to String)
- DESCRIBE always double-quotes mapping identifiers for roundtrip safety
- Version feature keys and checkFeature() for published REST commands
- Documentation: quick reference, help topics, docs-site examples
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 1b86f6c commit 8798071
1 file changed
+267
-233
lines changed
0 commit comments