Analysieren Sie, wie Sie Golang Iris verwenden

藏色散人
Freigeben: 2021-07-02 14:04:07
nach vorne
2283 Leute haben es durchsucht

, um iris zu installieren

<span style="font-size: 14px;">go get github.com/kataras/iris<br></span>
Nach dem Login kopieren

Instanz

Registrieren Sie eine Route zur Service-API
<span style="font-size: 14px;">app := iris.New()<br><br>app.Handle("GET", "/ping", func(ctx iris.Context) {<br>    ctx.JSON(iris.Map{"message": "pong"})<br>})<br><br>app.Run(iris.Addr(":8080"))<br></span>
Nach dem Login kopieren

Dies kann mit ein paar Codezeilen erreicht werden. Greifen Sie über den Browser auf http zu: //localhost:8080/ping gibt {"message": "pong"} zurück

Verwenden Sie die Handle-Funktion, um Methoden, Pfade und entsprechende Verarbeitungsfunktionen zu registrieren

Middleware hinzufügen

Wenn wir die Protokollinformationen aller Anfragen aufzeichnen möchten und hoffen, beim Aufrufen der entsprechenden Route bestätigen zu können, ob die angeforderte UA zulässig ist, können Sie die entsprechende Middleware über die Funktion „Verwenden“ hinzufügen Postbote muss auf den User-Agent zugreifen und ihn im Header hinzufügen. Der Zugriff auf /ping kann normale Ergebnisse zurückgeben. Wenn der User-Agent entfernt wird, wird die von uns festgelegte Meldung „Keine Autorisierung für Ping“ zurückgegeben. Da wir die Protokoll-Middleware von Iris hinzugefügt haben, werden die entsprechenden Protokollinformationen während des Zugriffs auf dem Terminal angezeigt. Holen Sie sich die Anforderungsparameter und zeigen Sie sie in HTML an

<span style="font-size: 14px;">package main<br/><br/>import (<br/>    "github.com/kataras/iris"<br/>    "github.com/kataras/iris/middleware/logger"<br/>)<br/><br/>func main() {<br/>    app := iris.New()<br/><br/>    app.Use(logger.New())<br/>    app.Use(checkAgentMiddleware)<br/><br/>    app.Handle("GET", "/ping", func(ctx iris.Context) {<br/>        ctx.JSON(iris.Map{"message": "pong"})<br/>    })<br/><br/>    app.Run(iris.Addr(":8080"))<br/>}<br/><br/>func checkAgentMiddleware(ctx iris.Context) {<br/>    ctx.Application().Logger().Infof("Runs before %s", ctx.Path())<br/>    user_agent := ctx.GetHeader("User-Agent")<br/><br/>    if user_agent != "pingAuthorized" {<br/>        ctx.JSON("No authorized for ping")<br/>        return<br/>    }<br/>    ctx.Next()<br/>}<br/></span>
Nach dem Login kopieren

Analysieren Sie, wie Sie Golang Iris verwendenRufen Sie die Parameter in der Anfrage ab

<span style="font-size: 14px;"><html><br/>    <head>Book information</head><br/>    <body><br/>        <h2>{{ .bookName }}</h2><br/>        <h1>{{ .bookID }}</h1><br/>        <h1>{{ .author }}</h1><br/>        <h1>{{ .chapterCount }}</h1><br/>    </body><br/></html><br/></span>
Nach dem Login kopieren
Legen Sie den Wert der Variablen in HTML fest

<span style="font-size: 14px;">package main<br/><br/>import "github.com/kataras/iris"<br/><br/>func main() {<br/>    app := iris.New()<br/><br/>    app.RegisterView(iris.HTML("./views", ".html"))<br/><br/>    app.Handle("GET", "/bookinfo/{bookid:string}", func(ctx iris.Context) {<br/>        bookID := ctx.Params().GetString("bookid")<br/><br/>        ctx.ViewData("bookName", "Master iris")<br/>        ctx.ViewData("bookID", bookID)<br/>        ctx.ViewData("author", "Iris expert")<br/>        ctx.ViewData("chapterCount", "40")<br/><br/>        ctx.View("bookinfo.html")<br/>    })<br/><br/>    app.Run(iris.Addr(":8080"))<br/>}<br/></span>
Nach dem Login kopieren
Route erlaubt und verbietet externen Zugriff
Bei der tatsächlichen Verwendung können einige Routen manchmal nur intern verwendet werden und von außen nicht zugänglich.

Kann mithilfe von

ctx.Params().GetString("bookid")
Nach dem Login kopieren

Routengruppierung auf Offline eingestellt werden

In tatsächlichen Anwendungen werden Routen nach tatsächlichen Funktionen wie Benutzern, Büchern, Community usw. klassifiziert.


ctx.ViewData(key, value)
Nach dem Login kopieren
Für diese Art von Routen können Sie sie in die Benutzergruppe und die Büchergruppe unterteilen. Für diese Gruppe wird es einen gemeinsamen Handler geben, der einige allgemeine Verarbeitungen abwickelt.

<span style="font-size: 14px;">package main<br/><br/>import "github.com/kataras/iris"<br/><br/>import "strings"<br/><br/>func main() {<br/>    app := iris.New()<br/><br/>    magicAPI := app.Handle("NONE", "/magicapi", func(ctx iris.Context) {<br/>        if ctx.GetCurrentRoute().IsOnline() {<br/>            ctx.Writef("I&#39;m back!")<br/>        } else {<br/>            ctx.Writef("I&#39;ll be back")<br/>        }<br/>    })<br/><br/>    app.Handle("GET", "/onoffhandler/{method:string}/{state:string}", func(ctx iris.Context) {<br/>        changeMethod := ctx.Params().GetString("method")<br/>        state := ctx.Params().GetString("state")<br/><br/>        if changeMethod == "" || state == "" {<br/>            return<br/>        }<br/><br/>        if strings.Index(magicAPI.Path, changeMethod) == 1 {<br/>            settingState := strings.ToLower(state)<br/>            if settingState == "on" || settingState == "off" {<br/>                if strings.ToLower(state) == "on" && !magicAPI.IsOnline() {<br/>                    magicAPI.Method = iris.MethodGet<br/>                } else if strings.ToLower(state) == "off" && magicAPI.IsOnline() {<br/>                    magicAPI.Method = iris.MethodNone<br/>                }<br/><br/>                app.RefreshRouter()<br/><br/>                ctx.Writef("\n Changed magicapi to %s\n", state)<br/>            } else {<br/>                ctx.Writef("\n Setting state incorrect(\"on\" or \"off\") \n")<br/>            }<br/><br/>        }<br/>    })<br/><br/>    app.Handle("GET", "/execmagicapi", func(ctx iris.Context) {<br/>        ctx.Values().Set("from", "/execmagicapi")<br/><br/>        if !magicAPI.IsOnline() {<br/>            ctx.Exec("NONE", "/magicapi")<br/>        } else {<br/>            ctx.Exec("GET", "/magicapi")<br/>        }<br/>    })<br/><br/>    app.Run(iris.Addr(":8080"))<br/>}<br/></span>
Nach dem Login kopieren

Basicauth wurde im obigen Beispiel verwendet. Alle Routen, die auf die Büchergruppe zugreifen, werden zunächst einer Authentifizierung unterzogen. Die Authentifizierungsmethode ist Benutzername und Passwort.

Besuchen Sie http://localhost:8080/books/sfsg3234/bookinfo in Postman.

Stellen Sie die Autorisierung auf Basic Auth, Benutzername und Passwort auf die Werte im Programm ein, und der Zugriff wird korrekt beantwortet. Andernfalls nicht autorisiert

Weitere technische Artikel zum Thema Golang finden Sie in der Tutorial-Kolumne zu

Golang

!

Das obige ist der detaillierte Inhalt vonAnalysieren Sie, wie Sie Golang Iris verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage