Heim >Backend-Entwicklung >Golang >Wie werden Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern in Go bereitgestellt?

Wie werden Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern in Go bereitgestellt?

Barbara Streisand
Barbara StreisandOriginal
2024-11-20 14:21:17645Durchsuche

How to Serve Web Pages and API Routes on the Same Port with Different Handle Patterns in Go?

Bereitstellen von Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern

In einer Webanwendung, in der sowohl Webseiten als auch API-Routen benötigt werden Um auf demselben Port bereitgestellt zu werden, ist es möglich, dies mit dem Paket net/http zu erreichen, das von der Go-Standardbibliothek bereitgestellt wird. Das Schlüsselprinzip ist der Vorrang längerer Muster vor kürzeren.

Bedenken Sie den folgenden Codeausschnitt:

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs) // Serves static web pages from the specified directory

http.Handle("/api", api.UserRoutes()) // Handles API routes using the UserRoutes function

In diesem Beispiel wird der Dateihandler für den Root-URL-Pfad „/“ registriert. ", was bedeutet, dass alle Anfragen verarbeitet werden, die keinem längeren Muster entsprechen. Der API-Routenhandler wird dann für den Pfad „/api“ registriert. Da „/api“ ein längeres Muster als „/“ ist, wird jede Anfrage, die mit „/api“ beginnt, an den API-Routen-Handler weitergeleitet, während alle anderen Anfragen an den Datei-Handler gehen.

Hinweis Es ist wichtig sicherzustellen, dass keine Dateien im Verzeichnis „/api“ vorhanden sind, da auf diese aufgrund der Vorrangregel nicht zugegriffen werden kann. Durch die Nutzung der Musterprioritätsfunktion ist es möglich, Webseiten und API-Routen auf demselben Port mit unterschiedlichen Handlern bereitzustellen.

Das obige ist der detaillierte Inhalt vonWie werden Webseiten und API-Routen am selben Port mit unterschiedlichen Handle-Mustern in Go bereitgestellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn