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

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

Susan Sarandon
Freigeben: 2024-11-15 19:53:03
Original
755 Leute haben es durchsucht

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

Bereitstellen von Webseiten und API-Routen auf demselben Port mit unterschiedlichen Mustern

In Webanwendungen ist es häufig erwünscht, sowohl statische Webseiten als auch API-Routen unter Verwendung derselben Portadresse. Um dies zu erreichen, können Sie die vom net/http-Paket bereitgestellten Mustervergleichsfunktionen nutzen.

Durch die Registrierung eines Dateihandlers für die Stamm-URL („/“) werden statische Inhalte aus einem angegebenen Verzeichnis bereitgestellt. Zum Beispiel:

fs := http.FileServer(http.Dir("server/webapps/play_maths"))
http.Handle("/", fs)
Nach dem Login kopieren

Um API-Routen bereitzustellen, können Sie einen separaten Handler mit einem Router wie mux.Router erstellen. Beispiel:

func UserRoutes() *mux.Router {
    router := mux.NewRouter().StrictSlash(true)
    router.HandleFunc("/user/create", api.CreateUser)
    router.HandleFunc("/user/get/all", api.GetAllUsers)
    return router
}
Nach dem Login kopieren

Durch die Registrierung dieses API-Routers mit einem bestimmten Muster können Sie API-Anfragen mit unterschiedlichen Pfaden verarbeiten. Zum Beispiel:

http.Handle("/api", UserRoutes())
Nach dem Login kopieren

Laut der Net/http-Dokumentation haben längere Muster Vorrang vor kürzeren. Dies bedeutet, dass jede Anfrage, die mit „/api/“ beginnt, vom API-Router verarbeitet wird, während jede andere Anfrage an den Dateihandler weitergeleitet wird.

Beachten Sie, dass dieser Ansatz sorgfältige Überlegungen erfordert, um potenzielle Konflikte zu vermeiden. Wenn beispielsweise statische Dateien im Verzeichnis „/api/“ abgelegt würden, wäre auf sie nicht mehr zugegriffen werden, da das API-Muster Vorrang hat.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage