-
Notifications
You must be signed in to change notification settings - Fork 1
Add Deep Traversal & Routing section to README #4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Added a section on Deep Traversal & Routing to explain recursive traversal of resources.
|
Thanks for this. As promised in another issue, I drafted also a PR in #6 which updates the whole README to fully cater for the new approach where the endpoint can be provided at any level/depth. I think it's less confusing if the README doesn't scope it for the landing page and then liberating the requirement in a separate section at the end. Would you also be happy with #6? It only covers your first proposed change (but solves issues #2 and #3), not the query parameter yet. I think we should add that separately in a new PR, which introduces it as a new conformance class. I think that's important as othrwise clients don't know whether the filter would be available in an API as it is only recommended here. The other question is, whether this is actually needed. As the server implementor can make sure that, if needed, no mixing happens, I don't get the reasoning around the server optimizations. I get it for the client side, but I'm not sure whether it's actually neede there. |
|
I've commented in #7 directly, it's generally fine to add.
It recommends(!) one type per level so that the children response is not polymorphic. I added this based on your feedback, you said it would help with implementation. I can remove that sentence, if you don't need it anymore.
No, but they have the same recommendation in the best practices, I think. So in that sense Children and static STAC is aligned. Edit: Sorry, I accidentally edited your response instead of adding a reply. Not sure how that happened, I restored your original post. |
|
@m-mohr Would it be better to add your changes to this pr instead of creating a new pr? These are my ideas ultimately. |
|
Who had this idea initially is debatable, see also stac-utils/stac-fastapi-elasticsearch-opensearch#308. My PR was not based on this PR, it was started from scratch. |
This PR updates the specification documentation to explicitly address two architectural ambiguity points that arise when implementing this extension for large, nested archives: Deep Traversal and Polymorphism.
Related Issue(s):
Motivation.
Currently, the specification explicitly defines
GET /childrenat the API Root. However, for deep hierarchies (e.g., Sub-Catalogs or "Collection of Collections"), the behavior for traversing beyond the first level is implicit.This creates a potential "Dead End" for generic clients: if a client discovers a sub-catalog in the root list, there is currently no standardized URL pattern to request that sub-catalog's children without scraping links.
Proposed Changes.
Added "Deep Traversal & Routing" Section:
/childrento sub-resource URLs (e.g.,/catalogs/{id}/children).lscommand) for nested structures.Added "Filtering by Type" Recommendation:
?type=Catalogor?type=Collection.These changes make the extension significantly more robust for building "File Browser" style clients that need to navigate infinite depth.
PR Checklist: