API
Les API sont principalement utilisées pour exposer des terminaux HTTP personnalisés sur le serveur de l’orchestrateur. Ces terminaux HTTP peuvent servir des pages HTML personnalisées ou faciliter des flux d’identité variés. Les extensions d’API peuvent également être utilisées pour d’autres tâches telles que l’exécution d’un script personnalisé.
Propriétés de configuration
Le bloc apis
contient une liste d’API.
Name
name
représente le nom de l’API.
Serve Service Extension
serveSE
est utilisé pour définir une extension de service API personnalisée. Pour plus de détails sur la façon
de définir une extension, veuillez consulter les documents relatifs aux extensions de services.
Exemples
apis:
- name: exampleAPI
serveSE:
funcName: Serve
file: /etc/maverics/extensions/api.go
ℹ️
Pour enregistrer des terminaux HTTP sur le serveur de l’orchestrateur, il est nécessaire d’utiliser le routeur présent
dans le package
github.com/strata-io/service-extension/router
. L’extension
ci-dessous explique comment enregistrer un terminal./etc/maverics/extensions/api.go
package main
import (
"fmt"
"net/http"
"github.com/strata-io/service-extension/orchestrator"
)
func Serve(api orchestrator.Orchestrator) error {
var (
logger = api.Logger()
router = api.Router()
)
logger.Info("se", "exposing custom API")
err := router.HandleFunc("/error.html", func(rw http.ResponseWriter, req *http.Request) {
logger.Info("se", "received error page request")
_, _ = rw.Write([]byte(errorPageText))
})
if err != nil {
return fmt.Errorf("failed to register route: %w", err)
}
return nil
}
const errorPageText = "Oops, it looks like there was an error. Please contact [email protected] for help."