Task #1873
closedPlan REST API for 3.0
100%
Description
Primarily due to the search API being tied to mongodb, and that pulp 3.0 will not use mongodb, pulp 3.0 will require a new API for search. Search is pervasive throughout the REST API, so a huge number of endpoints will have to change.
While we're at it, there are a number of API changes that have been desired for some time, and this will be a rare opportunity to act on them.
Ideally we will be able to auto-generate most or all of the API and its docs.
Files
Related issues
Updated by mhrivnak over 8 years ago
- Related to Task #1803: Plan replacement of mongodb with postgres added
Updated by mhrivnak over 8 years ago
- Related to Task #1874: Plan User/Auth system for 3.0 added
Updated by semyers over 8 years ago
- Has duplicate Task #2091: Create a plan for the REST API in 3.0 added
Updated by amacdona@redhat.com over 8 years ago
- File requests.txt requests.txt added
Because of issues with the translation of search queries, Katello recorded this list of all the criteria searches that Runcible uses. This should be helpful in determining their search requirements.
Updated by semyers over 8 years ago
- Status changed from NEW to ASSIGNED
- Assignee set to semyers
amacdona@redhat.com wrote:
Because of issues with the translation of search queries, Katello recorded this list of all the criteria searches that Runcible uses. This should be helpful in determining their search requirements.
I believe that most of the "search" views in pulp 2 will be managed with normal filtering in pulp 3. DRF integrates with django-filter[0], and exposes a pretty robust filtering mechanism via REST URLs, so we should pull out some characteristic searches that Katello is doing and looking at how we might construct Django queries or django-filter queries based on them.
I thought I added checklist items to better represent this task; I'll correct that in a moment. In the meantime, I'll point out that implementing the functionality provided by Pulp 2 "search" is likely going to be the least difficult piece of the pulp 3 API to figure out. Coming up with a reasonable implementation to handle our master/detail relationships is likely going to require some serious thought and effort. I've done some initial work on this in the rel-pulp project, so I'd like to take this on and continue that effort.
[0]: http://www.django-rest-framework.org/api-guide/filtering/
Updated by amacdona@redhat.com over 8 years ago
From the requests from katello tests, I have concluded that we will not need to implement full text search, that filtering is enough. Given that modeling is still going on, we cannot "identify model fields that we'll want to expose as filterable" because those fields might not exist or might change.
https://github.com/pulp/pulp/pull/2740/ implements and explains one of each type of filter. This demonstrates that filtering is powerful enough to meet katello needs and is as complete as we can get without finishing modeling first. Once modeling is complete, it will be necessary to re-review the requests on this ticket and ensure that the appropriate fields are filterable to allow comparable filters.
Updated by semyers over 8 years ago
amacdona@redhat.com wrote:
https://github.com/pulp/pulp/pull/2740/ implements and explains one of each type of filter.
I've grafted this PR onto my dev branch for this task (commit hash unchanged), which I'm currently preparing for review.
Updated by semyers over 8 years ago
almost there
https://github.com/pulp/pulp/compare/3.0-dev...seandst:rest-api-startup?expand=1
I've been hacking on this branch for a while now, and there are a lot of ideas captured on it that aren't related to this issue directly. I've already broken out and created PRs for a few of these, and will continue to do that until that branch is focused on just this issue. At that point,
I'll come back to the docs with fresh eyes to clean up errors and inconsistencies and open the PR to get to POST for feedback.
Updated by semyers about 8 years ago
- Status changed from ASSIGNED to POST
So this is a thing now:
https://github.com/pulp/pulp/pull/2779
All aboard the comment train! Next stop: The new REST API!
Added by semyers about 8 years ago
Added by semyers about 8 years ago
Revision d03d73c9 | View on GitHub
REST API initial documentation and base classes
Updated by semyers about 8 years ago
- Status changed from POST to MODIFIED
- % Done changed from 67 to 100
Applied in changeset pulp|d03d73c9714aa4c21c296b3749c929f688ea2f89.
Updated by semyers about 8 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Calling this closed since it's in the current (nonexistent) release of 3.0. :)
REST API initial documentation and base classes
closes #1873 https://pulp.plan.io/issues/1873