-
Notifications
You must be signed in to change notification settings - Fork 27
REST API: Add source
parameter for types endpoint
#128
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
Open
priethor
wants to merge
35
commits into
trunk
Choose a base branch
from
add/origin-parameter-for-types-endpoint
base: trunk
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cbravobernal
requested changes
May 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In my opinion, most of console logs are not necessary. Let's avoid to fill the logs of CI with them. The rest of the PR is working as expected, nice job!! 🚀
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What
/wp/v2/types
REST API endpoint that allows filtering post types by their origin:core
(WordPress built-in),scf
(for SCF managed types), orother
for the rest of CPTs./wp/v2/types
) and single item (/wp/v2/types/{type}
) endpointsWhy
When working on the Command Palette Integration and considering using the REST API to define CPT-related commands, requesting specifically for the CPTs managed by SCF became a need, and it will be needed, too, when implementing DataViews.
In fact, this branch is directly based on #124 and started in parallel, as we both realized we needed to tweak the Types endpoint if we wanted to leverage the API.
How
source
parameter is not defined, nothing changes.rest_request_before_callbacks
for the single request, returning 404 if the requested type doesn't meet the criteria.rest_prepare_post_type
to filter each post type by source before WordPress prepares it.rest_pre_echo_response
to removenull
values returned byrest_prepare_post_type
in the response array.rest_prepare_post_type
fires once per post type, the Post Types belonging to the requested source are calculated in advance inrest_request_before_callbacks
and reused throughout the whole request.Testing Instructions
- Make a GET request to
/wp/v2/types
to see all post types- Add
?source=core
to filter for WordPress built-in post types only- Add
?source=scf
to see only post types managed by SCF- Try
?source=other
to see post types registered from other sources- Test single post type endpoints like
/wp/v2/types/post?source=core
- Try an invalid source value (e.g.,
?source=invalid
) to verify validation works- Confirm a 404 error when requesting a post type with the wrong source (e.g., /wp/v2/types/post?source=scf`
- Run PHPUnit tests:
composer test:php -- --filter=Test_REST_Types_Endpoint
- Run E2E tests:
npm run test:e2e tests/e2e/rest-api-types-endpoint.spec.ts
Potential follow-ups
source
as a field in the response, as there would be no performance loss.