huan233usc opened a new pull request, #2692:
URL: https://github.com/apache/iceberg-rust/pull/2692

   ## Which issue does this PR close?
   
   Related to #1690 (server-side scan planning), which relies on endpoint
   negotiation. This PR lands the negotiation piece on its own so it can be
   reviewed independently.
   
   ## What changes are included in this PR?
   
   The REST spec lets a server advertise the routes it supports in the 
`endpoints`
   field of its `GET /v1/config` response, so clients can negotiate optional
   capabilities instead of assuming every server implements every operation. The
   Rust client currently ignores this field.
   
   This PR:
   - Adds a typed `Endpoint` (an HTTP method + path template), de/serialized 
from
     the `"{method} {path}"` wire form used in the `endpoints` array.
   - Parses the `endpoints` field of the config response and stores the 
advertised
     set on the catalog's runtime context.
   - Exposes `RestCatalog::supports_endpoint(&Endpoint)` to query it. Servers 
that
     omit the list are treated as advertising nothing, so a caller gating an
     optional feature falls back to its default behaviour.
   
   No existing behaviour changes — the new field defaults to empty when the 
server
   does not send it.
   
   ## Are these changes tested?
   
   Yes:
   - Unit tests for `Endpoint` serde (`"{method} {path}"` round-trip and 
rejection
     of malformed input).
   - `mockito` catalog tests: one server that advertises `endpoints` (asserting
     `supports_endpoint` is true/false for listed/unlisted routes), and one that
     omits the list (asserting nothing is reported as supported).
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to