Skip to content
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

gRPC API/v2 #1415

Open
8 tasks
carlobortolan opened this issue Nov 26, 2024 · 0 comments
Open
8 tasks

gRPC API/v2 #1415

carlobortolan opened this issue Nov 26, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request go Pull requests that update Go code Open Source Lab

Comments

@carlobortolan
Copy link
Member

Is your feature request related to a problem? Please describe.
Currently, GoCast is built on top of a REST API written in Go using the Gin web framework. However, this API is unversioned and, therefore, can't be really used by external services (e.g., the Campus App, Artemis, a future TUM-Live App, etc.).

Describe the solution you'd like
A new, versioned gRPC API called api_v2 which allows for external services (e.g., TUM Campus App, future GoCast App, etc.) to integrate lecture videos and features with a stable API.
While not immediately relevant, gRPC would also have the benefit of other features such as bi-directional streaming or better performance compared to HTTP/REST.

Describe alternatives you've considered
Keep the current system as is.

Additional context
This issue is used to keep an overview of the progress with the new API:

User-related endpoint groups:

  • Implement user endpoints
  • Implement course endpoints
  • Implement stream endpoints
  • Implement notification endpoints

Lecturer-related endpoint groups:

  • Implement admin endpoints
  • Implement token endpoints
  • Implement
  • TODO

Note

A prototype was developed last year for the iPraktikum GoCast app (see this PR draft) but has not been updated since then. To avoid changing the API used for the GoCast app and avoid having one very large commit, I'd implement each endpoint group as one and to incrementally add merge them to the production system.

@carlobortolan carlobortolan added enhancement New feature or request go Pull requests that update Go code Open Source Lab labels Nov 26, 2024
@carlobortolan carlobortolan self-assigned this Nov 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request go Pull requests that update Go code Open Source Lab
Projects
None yet
Development

No branches or pull requests

1 participant