-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
discussA discussion issue: we need to decide how to handle a specific thing in the new data model.A discussion issue: we need to decide how to handle a specific thing in the new data model.needs-researchSomeone needs to sit down and collect some information to continue this discussionSomeone needs to sit down and collect some information to continue this discussion
Description
With the data model changing quite significantly in some ways, there is the obvious question of how to expose that to the world. Opencast currently has a number of APIs (external API, search API, ...). We talked about this on 2025-07-31.
We decided already:
- We want a new API!
- Advantage: this clearly communicates that the data model has changed. Reusing and adjusting the old API runs the risk of lots of small breaking changes going unnoticed.
- Additionally: new API allows for a fresh clean start without baggage. It allows us to switch to some other API framework if we so wish.
- Of course, not all old APIs are deleted. Some are important to keep around, like ingest and CA APIs.
- We also said that a single OC release will: introduce new data model, new API and remove old API. We might want to support (via updates) the previous version for longer.
- We want to listen to feedback for the API more and adjust over time until we're happy to stabilize.
- The API should be "self-describing":
- Meaning, the API has well typed responses and parameters. GraphQL has this out of the box: you always know exactly what the response JSON looks like. We don't need to use GraphQL, but we want this property. JSON-Schema is a potential alternative. For example, would be great to generate Typescript bindings for the API automatically to type check frontend code. Also: it would be great if the API explorer UI lets you look at the exact response type as well.
- We want to experiment with different API frameworks (OpenAPI, GraphQL) to see what works well. See Experiment with new API for new data model (OpenAPI with dummy data) opencast#6968
Open questions
- What "framework" do we use? OpenAPI, GraphQL, ...?
- To decide this, we need to experiment: Experiment with new API for new data model (OpenAPI with dummy data) opencast#6968
- How does the API look like exactly?
- What APIs do we want to combine? E.g. merge all functionality of the
searchAPI into "the one new API"? Are there problems with the micro-architecture of it all? "Read only mode" is relevant here maybe.
Previous discussions:
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
discussA discussion issue: we need to decide how to handle a specific thing in the new data model.A discussion issue: we need to decide how to handle a specific thing in the new data model.needs-researchSomeone needs to sit down and collect some information to continue this discussionSomeone needs to sit down and collect some information to continue this discussion