docs: close Phase 2.2/2.3 — move to COMPLETED.md, update DeepDrftPublic proxy CLAUDE.md
This commit is contained in:
@@ -87,11 +87,15 @@ The middleware pipeline in `Program.cs` is ordered as follows:
|
||||
|
||||
`TrackProxyController` in `Controllers/` is the only HTTP controller. It is a thin proxy only — no domain logic, no data layer. The WASM client points both named HttpClients (`"DeepDrft.API"` and `"DeepDrft.Content"`) at the Blazor host's base address, so all browser requests route through this controller to DeepDrftAPI. Server-side SSR calls DeepDrftAPI directly (server-to-server) via the same named clients — no proxy hop on the server side.
|
||||
|
||||
The proxy forwards two public, unauthenticated routes:
|
||||
The proxy forwards public, unauthenticated routes:
|
||||
- `GET api/track/page` — paged metadata listing
|
||||
- `GET api/track/{trackId}` — WAV audio streaming (handles `offset` param for seek-beyond-buffer)
|
||||
- `GET api/track/{trackId}` — WAV audio streaming (handles `Range` header for seek-beyond-buffer)
|
||||
- `GET api/track/albums` — distinct albums with counts
|
||||
- `GET api/track/genres` — distinct genres with counts
|
||||
- `GET api/track/random` — random track selection
|
||||
- `GET api/track/meta/by-key/{entryKey}` — metadata lookup by vault entry key
|
||||
|
||||
Both actions use `HttpCompletionOption.ResponseHeadersRead` for streaming efficiency. Audio streaming registers the upstream response with `HttpContext.Response.RegisterForDispose()` so the stream is properly cleaned up after the response body is sent.
|
||||
All actions use `HttpCompletionOption.ResponseHeadersRead` for streaming efficiency. Audio streaming registers the upstream response with `HttpContext.Response.RegisterForDispose()` so the stream is properly cleaned up after the response body is sent.
|
||||
|
||||
## Development commands
|
||||
|
||||
|
||||
Reference in New Issue
Block a user