Heim >Backend-Entwicklung >Golang >Wie werden Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern bereitgestellt?
In einem Webanwendungsszenario kann es praktisch sein, sowohl statische Webseiten als auch API bereitzustellen Routen auf derselben Portadresse. Dies ermöglicht eine optimierte Architektur und eine effiziente Ressourcennutzung. Um dies mit unterschiedlichen Griffmustern zu erreichen, befolgen Sie diese Schritte:
1. Dateihandler registrieren
Registrieren Sie einen Dateiserver, um statische Dateien bereitzustellen. In diesem Beispiel wird es verwendet, um Dateien aus dem Verzeichnis „server/webapps/play_maths“ im Stammpfad (/) bereitzustellen:
fs := http.FileServer(http.Dir("server/webapps/play_maths")) http.Handle("/", fs)
2. API-Handler registrieren
Erstellen Sie einen Router für die Verarbeitung von API-Routen. In diesem Fall definiert UserRoutes() Routen zum Erstellen von Benutzern und zum Abrufen aller Benutzer:
func UserRoutes() *mux.Router { router := mux.NewRouter().StrictSlash(true) router.HandleFunc("/user/create", api.CreateUser) router.HandleFunc("/user/get/all", api.GetAllUsers) return router }
3. API-Handler an Pfad anhängen
Registrieren Sie den API-Router in einem bestimmten Root-Pfad, z. B. „/api/“. Dadurch wird sichergestellt, dass alle Anfragen, die mit „/api/“ beginnen, von den API-Routen verarbeitet werden:
http.Handle("/api/", UserRoutes())
Hinweis: Die Reihenfolge der Routenregistrierung ist wichtig. Längere Muster haben Vorrang vor kürzeren. Daher ist es wichtig, die spezifischeren API-Routen vor dem allgemeinen Dateihandler zu registrieren. Dadurch wird verhindert, dass Anfragen an die API-Routen vom Dateihandler abgefangen werden.
Durch Befolgen dieser Schritte können Sie sowohl statische Webseiten als auch API-Routen an derselben Portadresse bereitstellen und dabei unterschiedliche Handle-Muster beibehalten. Dies bietet Flexibilität und verbessert die Leistung, indem der Bedarf an mehreren Serverinstanzen reduziert wird.
Das obige ist der detaillierte Inhalt vonWie werden Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern bereitgestellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!