Draft the rough OpenAPI 3.1 specification for the target API.
GET:
GET /videos — search/filter/paginate
GET /videos/{youtube_id} — single video
GET /videos/recommended — recommendations
GET /table/{table} — generic table read (adopt the parameterised pattern from the stark branch)
GET /table/{table}/{id} — single row by ID
GET /presenters — distinct presenter names
GET /dtv_events — events with videos
GET /version — version string
Write side (redesign with proper REST verbs):
POST /person (create), PUT /person/{id} (update), DELETE /person/{id}
- Same pattern for
/organisation, /event, /event_type, /presentation_type, /category
POST /presentation (create), PUT /presentation/{id} (update), DELETE /presentation/{id}
POST /presentation/{id}/material (add material)
POST /admin/refresh — trigger cache rebuild
POST /admin/wp-push — push to WordPress
Decisions to make during this issue:
- API versioning prefix (
/v4/...) — yes or no?
- Response envelope standardisation — keep mixed format or unify?
- Error response schema
To do
Draft the rough OpenAPI 3.1 specification for the target API.
GET:
GET /videos— search/filter/paginateGET /videos/{youtube_id}— single videoGET /videos/recommended— recommendationsGET /table/{table}— generic table read (adopt the parameterised pattern from the stark branch)GET /table/{table}/{id}— single row by IDGET /presenters— distinct presenter namesGET /dtv_events— events with videosGET /version— version stringWrite side (redesign with proper REST verbs):
POST /person(create),PUT /person/{id}(update),DELETE /person/{id}/organisation,/event,/event_type,/presentation_type,/categoryPOST /presentation(create),PUT /presentation/{id}(update),DELETE /presentation/{id}POST /presentation/{id}/material(add material)POST /admin/refresh— trigger cache rebuildPOST /admin/wp-push— push to WordPressDecisions to make during this issue:
/v4/...) — yes or no?To do
docs/