Skip to content

GET container endpoints with optional paging - #1025

Draft
dennisvang wants to merge 6 commits into
masterfrom
feature/842-get-container-endpoints
Draft

dennisvang wants to merge 6 commits into
masterfrom
feature/842-get-container-endpoints

Conversation

@dennisvang

@dennisvang dennisvang commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

This enables GET requests to container endpoints, such as /catalog/, /dataset/, /catalog/<id>/dataset/, and so on.
Paging is optional, depending on the presence of query parameters page and size.

  • added GET controller methods for the following paths, based on the original getMetadataChildren method:
    • "/{urlPrefix}/"
    • "/{urlPrefix}/{recordId}/{childPrefix}/"
  • the original /page/ endpoints (getMetadataChildren) now delegate to the new methods

Important

The original /page/ endpoints are now deprecated for removal. We keep them around until the next major version, for backward compatibility.

Note

The urlPrefix is actually the resource type and represents the LDP container.
The recordId is actually the resource Id.
The childPrefix is actually the child resource type, representing the name of another LDP container.
I would like to rename these variables accordingly, but that would require a major refactor, because this terminology is used throughout the code base, even down to the database level.
So, we'll stick to the existing terminology, to remain consistent with the rest of the code.

fixes #842

todo:

  • add API-docs for the new endpoints...
  • dataset container returns empty...

Assisted-by: copilot

AI disclosure: Copilot was used for guidance about best practices regarding path patterns and optional path variables. Copilot (free) was also used to review the PR, due to absence of human reviewers.

…tainer>/ endpoints

this controller has optional paging

also re-use the controller method for getMetadataChildren
…esources)

instead of a single method with multiple patterns and optional path parameters
actually not sure if they are even required, but we'll keep them because they are also in getMetadataChildren
@dennisvang dennisvang added the feature Request for new functionality label Sep 30, 2026
@dennisvang
dennisvang marked this pull request as draft September 30, 2026 15:57
@dennisvang dennisvang mentioned this pull request Sep 30, 2026
2 of 3 tasks
@dennisvang

dennisvang commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor Author

Now blocked by uncertainty w.r.t. the desired behavior for container endpoints.
The fdp does not behave like a true LDP-server at all, so trying to make the container endpoint comply with LDP container GET behavior requires workarounds in all kinds of other places and could have unexpected side effects. I'm tempted to call it a mess.

@dennisvang

Copy link
Copy Markdown
Contributor Author

In addition, the custom openapi config is broken, because e.g. deprecated=true is not being picked up, forcing us to mention deprecation explicitly in the endpoint descriptions. Who knows what else is broken in this custom config...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Request for new functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HTTP GET support for container/collection endpoints

1 participant