Protected ReadonlybasePrefixed to every request path, exactly once.
Protected Optional ReadonlyconfigureResolves per-request adjustments at call time.
Protected ReadonlyendpointsResolved per-operation paths.
Protected ReadonlyheadersHeaders sent with every request.
Protected ReadonlyinitPassed through to fetch on every request.
Protected ReadonlymethodsResolved HTTP verbs.
Protected ReadonlyparamResolved query-parameter names.
Protected Optional ReadonlyparseMaps a create or update response onto the stored record.
Protected Optional ReadonlyparseMaps a list payload onto a page, when the API wraps its results.
Protected ReadonlyqueryAppended to every request's query string.
Protected ReadonlyserializeMaps a draft onto the request body.
ProtectedbuildProtectedbuildProtectedrequestSingle point where baseUrl, headers and error handling are applied.
Every request goes through here so baseUrl is prefixed exactly once -
building a full URL earlier and prefixing again is how it ended up
duplicated for relative bases.
ProtectedserializeEncode filters as query parameters.
Each filter is sent under its own field name, which suits an API that
filters per column. An API with a single search parameter - ?q= is the
common shape - wants them combined instead, so this is a seam rather than
inline, matching serializeSort.
ProtectedserializeEncode sort instructions as query parameters.
Only the first instruction is sent: sortBy/sortOrder is a single-sort
shape, and inventing a multi-sort encoding would guess at a convention the
server may not share. Override to support one.
ProtectedtoProtectedtoInterpret a create or update response.
A source over a REST API.
URL and payload construction live in
protectedmethods rather than inline, so an API that does not match the default dialect is a small subclass instead of a full reimplementation of the strategy.