


Wie stelle ich in Go Webseiten und API-Routen am selben Port bereit?
Nov 30, 2024 pm 04:58 PMBereitstellung von Webseiten und API-Routen auf demselben Port mit unterschiedlichen Handle-Mustern
Bereitstellung von Webseiten und API-Routen auf demselben Port mit Unterschiedliche Handle-Muster sind eine häufige Anforderung in der Webentwicklung. So erreichen Sie dies in Go mit dem Paket net/http:
Das Paket net/http stellt den ServeMux-Typ bereit, der eine Reihe von Handlern für eingehende HTTP-Anfragen verwaltet. Die Registrierung von Handlern erfolgt über die Handle-Methode. Laut Dokumentation haben längere Muster Vorrang vor kürzeren. Diese Eigenschaft kann genutzt werden, um Webseiten und API-Routen gleichzeitig auf demselben Port bereitzustellen.
Um beispielsweise Webseiten unter dem Stammpfad / und API-Routen unter /api bereitzustellen, können Sie den folgenden Code verwenden:
fs := http.FileServer(http.Dir("server/webapps/play_maths")) http.Handle("/", fs) // Handles web pages at root path apiRoutes := UserRoutes() // Initialize API routes as a handler http.Handle("/api", apiRoutes.ServeHTTP) // Handles API routes
Die UserRoutes-Funktion erstellt einen Subrouter für API-Routen. Standardmäßig erben Unterrouter das Präfix des übergeordneten Routers, Sie können dieses Verhalten jedoch mit der PathPrefix-Methode überschreiben. Der Router wird dann als Handler für unsere API-Routen verwendet.
Indem wir den Webseiten-Handler vor dem API-Routen-Handler registrieren und sicherstellen, dass der Webseiten-Handler ein kürzeres Muster hat, nutzen wir die Tatsache aus, dass längere Muster vorhanden sind Vorrang haben. Daher werden Anfragen, die mit /api beginnen, vom API-Routen-Handler verarbeitet, während alle anderen Anfragen (einschließlich derjenigen an den Stammpfad) vom Webseiten-Handler verarbeitet werden.
Dieser Ansatz bietet eine Flexible Möglichkeit, verschiedene Arten von HTTP-Anfragen auf demselben Server zu verarbeiten, ohne dass mehrere Prozesse ausgeführt oder ein Reverse-Proxy verwendet werden müssen.
Das obige ist der detaillierte Inhalt vonWie stelle ich in Go Webseiten und API-Routen am selben Port bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heißer Artikel

Hot-Tools-Tags

Heißer Artikel

Heiße Artikel -Tags

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

GO Language Pack Import: Was ist der Unterschied zwischen Unterstrich und ohne Unterstrich?

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go?

Wie kann ich kurzfristige Informationsübertragung zwischen Seiten im BeEGO-Framework implementieren?

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren?

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen?

Wie kann ich Linter und statische Analyse -Tools verwenden, um die Qualität und Wartbarkeit meines GO -Codes zu verbessern?

Wie schreibe ich Dateien in Go Language bequem?

Wie konvertieren Sie die Liste der MySQL -Abfrageergebnisse in eine benutzerdefinierte Struktur -Slice in Go -Sprache?
