Neues Framework für Go gewinnt an Fahrt: Was Entwickler wissen müssen

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Neues Framework für Go (Golang) gewinnt an Popularität: Überblick und Perspektiven



Das Ökosystem von Go (Golang) entwickelt sich weiterhin aktiv, und im Jahr 2024 hat die Community ein neues Framework beachtet, das verspricht, die Herangehensweise an die Erstellung von Webanwendungen zu verändern. Obwohl Go traditionell für seine Einfachheit und seine eingebaute Standardbibliothek bekannt ist, hat der Bedarf an strukturierteren Lösungen für Microservices und REST APIs zur Entstehung einer Reihe von Frameworks geführt. Das neueste davon — Huma — gewinnt rasant Sterne auf GitHub und zieht die Aufmerksamkeit sowohl von Anfängern als auch von erfahrenen Entwicklern auf sich.



Was ist Huma und worin unterscheidet es sich?



Huma ist ein modernes HTTP-Framework für Go, das auf die Erstellung von APIs mit automatischer Generierung von OpenAPI (Swagger)-Spezifikationen ausgerichtet ist. Im Gegensatz zu klassischen Lösungen wie Gin oder Echo konzentriert sich Huma auf strenge Typisierung und deklarative Beschreibung von Endpunkten.



Hauptmerkmale des Frameworks:



  • Automatische Dokumentation — es reicht aus, die Datenstrukturen zu beschreiben, und Huma generiert selbstständig eine vollständige OpenAPI 3.1-Spezifikation.
  • Validierung auf Typebene — alle eingehenden und ausgehenden Daten werden sowohl zur Kompilierzeit als auch zur Laufzeit überprüft.
  • Middleware-Unterstützung — lässt sich einfach in bestehende Bibliotheken für Logging, Authentifizierung und CORS integrieren.
  • Leichtgewichtigkeit — das Framework erzwingt keine schweren Abhängigkeiten und funktioniert praktisch mit dem standardmäßigen net/http.


Warum ist das für die Go-Community wichtig?



Go (Golang) wird oft für hochlastige Systeme und Microservice-Architekturen gewählt. Bis vor kurzem waren Entwickler jedoch gezwungen, Dokumentation manuell zu schreiben oder sperrige Generatoren zu verwenden. Huma löst dieses Problem: Der Code wird selbstdokumentierend, was besonders in der Teamarbeit und bei der Wartung von Legacy-Projekten wertvoll ist.



Darüber hinaus nutzt das Framework aktiv die Möglichkeiten von Generics, die in Go 1.18 hinzugefügt wurden. Dies ermöglicht das Schreiben flexiblerer und wiederverwendbarer Komponenten ohne Leistungseinbußen.



Beispiel für die grundlegende Verwendung



Um einen einfachen Endpunkt mit Huma zu erstellen, reichen wenige Codezeilen:



package main

import ( "github.com/danielgtaylor/huma/v2" "github.com/danielgtaylor/huma/v2/adapters/humachi")

type GreetingInput struct { Name string `path:"name" maxLength:"50"`}

type GreetingOutput struct { Message string `json:"message"`}

func main() { app := humachi.NewRouter() huma.Get(app, "/greeting/{name}", func(ctx huma.Context, input *GreetingInput) (*GreetingOutput, error) { return &GreetingOutput{Message: "Hallo, " + input.Name + "!"}, nil }) app.Run()}


Wie aus dem Beispiel ersichtlich, muss der Entwickler keinen separaten Code für Validierung oder Dokumentationsgenerierung schreiben — alles geschieht automatisch auf Basis der annotierten Strukturen.



Perspektiven und Kritik



Derzeit befindet sich Huma in der aktiven Entwicklung, hat aber bereits Unterstützung von großen kommerziellen Projekten erhalten. Die Community merkt an, dass das Framework zum De-facto-Standard für die API-Erstellung in Go werden könnte, wenn sein Team die Dokumentation und Stabilität weiter verbessert.



Es gibt jedoch auch kritische Anmerkungen: Einige Entwickler sind der Meinung, dass Huma einfache Aufgaben unnötig verkompliziert und seine Magie mit der automatischen Generierung in komplexen Szenarien zu unerwarteten Fehlern führen kann.



Z

Empfohlene Bibliotheken