-
Notifications
You must be signed in to change notification settings - Fork 6
Work In Progress: OGraf Server API #12
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
base: main
Are you sure you want to change the base?
Conversation
not emantically correct, but technically possible
# Conflicts: # v1-draft-0/examples/l3rd-name/manifest.json # v1/examples/l3rd-name/l3rd-manifest.json # v1/examples/l3rd-name/manifest.json # v1/specification/docs/Specification.md # v1/typescript-definitions/package-lock.json # v1/typescript-definitions/package.json
# Conflicts: # v1/typescript-definitions/src/apis/graphicsAPI.ts
… GraphicInstanceId only
|
Notes from Working Group meeting 2025-10-01: There was a discussion regarding PR #15 and whether we should simplify the API to only allow 1 graphic per RenderTarget.
No conclusion was reached, we'll discuss this again at next meeting in two weeks. |
|
I went through the OpenAPI definition and had the following remarks:
|
|
Notes from Working Group meeting 2025-10-29:
|
# Conflicts: # v1/typescript-definitions/package-lock.json # v1/typescript-definitions/package.json # v1/typescript-definitions/src/main.ts
# Conflicts: # .github/workflows/publish-npm.yml
ServerAPI: Remove GraphicId in favor for GraphicInstanceId
|
Notes from Working Group 2025-11-12: Idea: It should be possible to clear a whole renderer, not just graphics on a single renderTarget |
…tedBy, updatedAt, updatedBy fields
( we can re-add them later if we come up with a use case)
|
I pushed a few modifications to this PR based on @dvdeurse 's suggestions. Notable exceptions:
I couldn't come up with a good solution for this. Let's discuss it some time.
I think it would be useful to keep the graphicsInstanceId being unique only within its RenderTarget. This way we allow for a Renderer that doesn't really support instances of a graphic to function, by just returning the |
|
Thx Johan for these modifications. Some remarks:
In the end, for a single Graphic, there are two parts:
Then there's the info from the manifest itself. Do we want a lightweight form of it? I believe we do, for two reasons:
Therefore, I propose the following data model for a Graphic, where That is the full version, the lightweight version of a Graphic would then be:
Agreed. On the clearGraphic endpoint, there is an error in the request data model. I believe you intended to implement an array of filters, but the schema currently models Finally, there was one remark that you forgot to implement or mention:
This remark was about the query params on the following endpoints:
I don't see a reason why they should be query params instead of being part of the request body. The only place where the query param makes sense is on the |
…`body`, where applicable
|
Good suggestions @dvdeurse ! I've updated the schema to what you proposed:
|
|
Here are a few more suggestions for changes:
(disclaimer: These where identified with the help of an AI tool) |
Yes, either change PUT into POST or add the
Agreed.
Yes, but then you loose the ability to play/stop multiple instances at the same time. Especially if you want these actions to happen in the same 'frame' (so in sync), the only way to do this is to combine them into one request (or to provide scheduled timestamps in the requests, but I don't think we want to go down that path). However, looking at the current API proposal, we cannot do multiple play/stop instances anyway. Isn't that a use case we want to support? Whatever we decide here, I would like to propose to rename the
Ok, something similar to https://specs.amwa.tv/is-04/releases/v1.2.2/docs/2.3._APIs_-_Server_Side_Implementation_Notes.html#cross-origin-resource-sharing-cors then? |
This PR tracks the work being done to define the Server API portion of the OGraf specification.
Time plan
(Revised september 2025)
Info
The Server API is an OpenApi definition, located at v1/specification/open-api/server-api.yaml
(also see the auto-generated documentation here).
Contributions & testing
Ways to contribute:
I (@nytamin ) intend to update SuperFly's "Simple Rendering System" continously throughout the discussions and keep it up-to-date with the latest server API, for testing and validation purposes.