Heim  >  Artikel  >  Backend-Entwicklung  >  Analysieren Sie, wie Sie Golang Iris verwenden

Analysieren Sie, wie Sie Golang Iris verwenden

藏色散人
藏色散人nach vorne
2021-07-02 14:02:192287Durchsuche

, um iris zu installieren

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

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>

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>

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>
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>
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")

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)
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>

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen