API-04: openapi-schnittstellenbeschreibung (drift-check + beispielausfuehrung)

This commit is contained in:
sysops
2026-08-28 08:17:11 +02:00
parent 27f9866264
commit 8085f39142
4 changed files with 354 additions and 0 deletions
+12
View File
@@ -12,6 +12,7 @@ import (
type Server struct {
mux *http.ServeMux
issuer *auth.TokenIssuer
routes []string
}
func NewServer(issuer *auth.TokenIssuer) *Server {
@@ -24,9 +25,20 @@ func NewServer(issuer *auth.TokenIssuer) *Server {
// bestehende nicht (Akzeptanzkriterium 1 / Pruefung 3).
func (s *Server) Handle(version, pattern string, h http.HandlerFunc) {
full := "/api/" + version + pattern
s.routes = append(s.routes, full)
s.mux.HandleFunc(full, loggingMiddleware(authAndTenantContext(s.issuer, h)))
}
// RegisteredPaths liefert alle ueber Handle/HandleV1 tatsaechlich
// registrierten Pfade — die einzige Quelle der Wahrheit fuer den
// Drift-Abgleich mit dem OpenAPI-Dokument (API-04, siehe internal/openapi).
// Rein additive Buchfuehrung, keine Verhaltensaenderung von Handle.
func (s *Server) RegisteredPaths() []string {
out := make([]string, len(s.routes))
copy(out, s.routes)
return out
}
// HandleV1 ist die Kurzform fuer die aktuelle Hauptversion.
func (s *Server) HandleV1(pattern string, h http.HandlerFunc) {
s.Handle("v1", pattern, h)