-
Notifications
You must be signed in to change notification settings - Fork 32
🎨 api-server: Add GET /solvers/page Public API Route with Pagination and Filter Support
#7719
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
🎨 api-server: Add GET /solvers/page Public API Route with Pagination and Filter Support
#7719
Conversation
26ed315 to
0da66e3
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #7719 +/- ##
==========================================
+ Coverage 87.38% 87.40% +0.01%
==========================================
Files 1838 1831 -7
Lines 71068 70965 -103
Branches 1201 1201
==========================================
- Hits 62106 62025 -81
+ Misses 8634 8612 -22
Partials 328 328
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
0da66e3 to
08939a8
Compare
225ebce to
ab43de0
Compare
api-server: Add GET /solvers/page Public API Route with Pagination and Filter Support
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.
Pull Request Overview
This PR adds a new “all‐versions” listing endpoint for solvers and catalog services, enabling paginated retrieval of every version’s summary alongside the existing “latest‐only” views.
- Introduces a
ServiceSummaryschema and related RPC types (PageRpcServiceSummary) - Implements
list_all_service_summariesincatalog_servicesandlist_all_servicesin the repository with pagination and filtering - Hooks the new summaries endpoint through RPC, API routes (solvers), and updates tests accordingly
Reviewed Changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| services/catalog/src/.../catalog_services.py | Added _aggregate_summary and list_all_service_summaries for full-version summaries |
| services/catalog/src/.../repository/services.py | Added list_all_services to repository with count and page queries |
| services/catalog/src/.../api/rpc/_services.py | Exposed list_all_services_summaries_paginated RPC method and new PageRpcServiceSummary |
| services/api-server/src/.../_service_solvers.py | Added list_all_solvers and updated solver service to use summary endpoint |
| services/api-server/src/.../api/routes/solvers.py | New /solvers/page route for all solver versions |
| services/api-server/tests/.../test_api_routers_solvers.py | Updated imports and route tests for new handler |
| services/catalog/tests/.../test_service_catalog_services.py | New unit test for comparing “all” vs “latest” catalog services |
| services/catalog/tests/.../test_repositories.py | Updated repository tests to use pagination_limit / pagination_offset |
| services/catalog/tests/.../test_api_rpc.py | Added RPC tests for list_all_services_summaries_paginated |
| services/api-server/tests/.../conftest.py | Generalized mock setup for all RPC side-effects |
Comments suppressed due to low confidence (2)
services/api-server/src/simcore_service_api_server/_service_solvers.py:225
- There's no
list_latest_releasesmethod incatalog_service. This should calllist_latest_catalog_servicesto retrieve the latest versions.
services, page_meta = await self.catalog_service.list_latest_releases(
services/api-server/src/simcore_service_api_server/_service_solvers.py:188
- The method
list_all_services_summariesdoes not exist incatalog_service. It should calllist_all_service_summaries(singular) to match the implementation incatalog_services.py.
services, page_meta = await self.catalog_service.list_all_services_summaries(
GitHK
left a comment
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.
thanks 👍
packages/models-library/src/models_library/api_schemas_catalog/services.py
Outdated
Show resolved
Hide resolved
bisgaard-itis
left a comment
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.
Thanks a lot.
packages/pytest-simcore/src/pytest_simcore/helpers/catalog_rpc_server.py
Outdated
Show resolved
Hide resolved
services/catalog/src/simcore_service_catalog/service/catalog_services.py
Outdated
Show resolved
Hide resolved
…nation and access rights
…ination for improved performance
…ries and refactor mock setup in tests
…filtering, including all versions
…h pagination and improve method naming for clarity
64dec91 to
035f3db
Compare
matusdrobuliak66
left a comment
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.
👍
sanderegg
left a comment
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.
Did you check the logs of the catalog when running in devel mode?
I see a load of problems appearing there. maybe worth to check at some point?
Thanks.
|



What do these changes do?
This PR implements the public-api
GET /solvers/pageroute toListall items of theSolvers collection (paginated) with query filters by attributesolver_idandversion_displaypatternsExamples
Details on the implementation
Related issue/s
How to test
api-servercatalog:test_api_rpc.py: tests catalog's rpc_client end-to-endtest_repositories.py: tests repo-layer to endtests_service_catalog_service.py: tests service-layer to endManual exploratory test using api-server swagger site

Dev-ops
None