Adding the dimension_slices query parameter and associated metadata#481
Conversation
|
Thanks for writing this up! Why did you move the whole section "Transmission of large property values"? It makes it tricky to see what has changed. Can you move it back? Also, my interpretation of the workshop discussions was to make the |
|
It seemed more logical to place the metadata section before the "Transmission of large property values" section, as the "Transmission of large property values" section depends on the metadata section but not the other way round. So it is more useful to read the metadata section before the "Transmission of large property values" section. |
|
You are right, I could still separate the property ranges query parameter and the extra metadata fields from the transmission of large data section, as each could still be used separate from the other. I'll try to do this next week. |
Make sure each sentence starts on a new line. Co-authored-by: Antanas Vaitkus <antanas.vaitkus90@gmail.com>
d2a18b7 to
a84c72e
Compare
ml-evs
left a comment
There was a problem hiding this comment.
Mostly formatting changes and suggesting rewordings -- I think I can go through and force most of them in if there are no objections
property_ranges query parameter and associated metadata
|
This PR appears a bit stalled and is important. @JPBergsma do you plan to continue working on this, or are you ok with me (or someone else) starting to merge changes into it? |
giovannipizzi
left a comment
There was a problem hiding this comment.
I am very happy with this final version. If there are minor textual changes, feel free to apply and merge as if these are also approved by me!
d2f8644
Co-authored-by: Daniel Beltrán <44979434+d-beltran@users.noreply.github.com>
giovannipizzi
left a comment
There was a problem hiding this comment.
Thanks, great work! Let's get it merged!
This PR introduces the ability for a client to request a specific subset, or "slice", of items from list properties. This is primarily achieved through the addition of a new query parameter,
dimension_slices, and associated metadata fields to describe slicing capabilities and reflect the requested slices in the response.Note this new feature is distinct from the existing protocol for large property values (see #467 and follow-up PRs), as slicing is initiated by the client, not the server. This means that even when slicing is requested by the client, the server can still decide whether to return the whole data in line, or via the partial data protocol.
1.
dimension_slicesquery parameterdimension_slices=dim_xxx[start:stop:step],...2. Metadata enhancements in the response
A new
list_axeslist of dictionaries describing each list dimension. Each dict must containdimension_name(required).Optional keys:
length,sliceable(bool),available_slice(index range),requested_slice(returned inlist_axesfor each sliced property, reflecting the exact slice requested).3. Shared dimensions
Result: Clients can fetch only needed portions of list data, with servers clearly describing slicing capabilities and confirming applied slices in the response.
Note that it surpersedes the original proposal #452.