Controller info endpoint and API integration examples (#75)

* Controller API: introduce controller's information endpoint

* Prevent generation of empty events after channel closure

* Allow events to be buffered in the events channel

* Controller API: introduce controller's information endpoint[1]

* IntegrationGuide.md: a couple of Python and Golang examples

* Rephrase a sentence

Co-authored-by: Fedor Korotkov <fedor.korotkov@gmail.com>

---------

Co-authored-by: Fedor Korotkov <fedor.korotkov@gmail.com>
This commit is contained in:
Nikolay Edigaryev
2023-04-11 07:28:46 +00:00
committed by GitHub
co-authored by Fedor Korotkov
parent 84633d0e45
commit 77656517fd
9 changed files with 272 additions and 8 deletions
+7 -2
View File
@@ -30,7 +30,8 @@ func (controller *Controller) initAPI() *gin.Engine {
// Auth
v1.Use(controller.authenticateMiddleware)
// A way to for the clients to check that the API is working
// OpenAPI docs/spec (if enabled) and a way to for the clients
// to check that the API is working
v1.GET("/", func(c *gin.Context) {
if controller.enableSwaggerDocs {
middleware.SwaggerUI(middleware.SwaggerUIOpts{
@@ -41,13 +42,17 @@ func (controller *Controller) initAPI() *gin.Engine {
c.Status(http.StatusOK)
}
})
if controller.enableSwaggerDocs {
v1.GET("/openapi.yaml", func(c *gin.Context) {
c.Data(200, "text/yaml", api.Spec)
})
}
// Controller information
v1.GET("/controller/info", func(c *gin.Context) {
controller.controllerInfo(c).Respond(c)
})
// Service accounts
v1.POST("/service-accounts", func(c *gin.Context) {
controller.createServiceAccount(c).Respond(c)