refactor(api): remove 5 deprecated list endpoints superseded by /resources
The normalized cursor-paginated /resources API is live and the bundled
frontend already uses it for favorites, recent, trash and grants. These five
deprecated old-format endpoints had no remaining frontend or protocol
consumers (the Nextcloud handlers call the service layer directly, not these
HTTP routes), so remove them for a uniform API and less duplicate listing
logic:
- GET /api/folders/{id}/contents → use /api/folders/{id}/resources
- GET /api/folders/{id}/contents/paginated → use /api/folders/{id}/resources
- GET /api/favorites → use /api/favorites/resources
- GET /api/recent → use /api/recent/resources
- GET /api/trash → use /api/trash/resources
Removes the HTTP handlers, their routes, OpenAPI path registrations, and the
now-dead list_folder_contents{,_paginated}_impl helpers + unused imports. The
underlying service methods (favorites_service.get_favorites,
trash_service.get_trash_items, etc.) are KEPT — the Nextcloud OCS/trashbin
handlers depend on them.
Deliberately NOT removed: GET /api/folders/{id}/listing. It is still the Files
view's primary data path and offers ETag/304 conditional caching plus
one-shot favorite/share badge sets that /resources does not yet provide;
migrating it needs a separate parity pass on /resources first.
Updates the OpenAPI structure test and the two docs that referenced the
removed paths. `cargo clippy -D warnings` clean; 443 lib tests pass; OpenAPI
regenerates with the 5 paths gone and the /resources replacements present.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -301,17 +301,17 @@ avoids a breaking API change when a second sort is added later.
|
||||
| `GET /api/photos` | ⚠️ `before` header | ❌ | Non-standard — migrate to body cursor |
|
||||
| `GET /api/search` | ❌ offset | ✅ | Migrate cursor |
|
||||
| `GET /api/folders/paginated` | ❌ page | ❌ | Migrate cursor |
|
||||
| `GET /api/folders/{id}/contents/paginated` | ❌ page | ❌ | Migrate cursor |
|
||||
| `GET /api/folders/{id}/contents/paginated` | — | — | ✅ **Removed** — use `/api/folders/{id}/resources` |
|
||||
| `GET /api/admin/users` | ❌ offset | ❌ | Migrate cursor |
|
||||
| `GET /api/address-books/{id}/contacts` | ❌ offset | ❌ | Migrate cursor |
|
||||
| `GET /api/shares` | ❌ page | ❌ | Migrate cursor |
|
||||
| `GET /api/playlists` | ❌ offset | ❌ | Migrate cursor |
|
||||
| `GET /api/recent` | ❌ limit only | ❌ | Migrate cursor |
|
||||
| `GET /api/recent` | — | — | ✅ **Removed** — use `/api/recent/resources` |
|
||||
| `GET /api/files` | ❌ **none** | ❌ | Unbounded — **urgent** |
|
||||
| `GET /api/folders` | ❌ **none** | ❌ | Unbounded — **urgent** |
|
||||
| `GET /api/folders/{id}/listing` | ❌ **none** | ❌ | Unbounded — **urgent** |
|
||||
| `GET /api/favorites` | ❌ **none** | ❌ | Unbounded — **urgent** |
|
||||
| `GET /api/trash` | ❌ **none** | ❌ | Unbounded — **urgent** |
|
||||
| `GET /api/favorites` | — | — | ✅ **Removed** — use `/api/favorites/resources` |
|
||||
| `GET /api/trash` | — | — | ✅ **Removed** — use `/api/trash/resources` |
|
||||
| `GET /api/grants/incoming` | ❌ **none** | ❌ | Unbounded |
|
||||
| `GET /api/grants/outgoing` | ❌ **none** | ❌ | Unbounded |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user