Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證

文章推薦指數: 80 %
投票人數:10人

生命不止,繼續go go go !!! 接下來,想跟大家一起分享一些golang語言成熟的、知名度比較高的web框架。

我們從iris web框架開始,開始呢,我們先不去 ... Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證、Markdown、YAML、Json) 首頁 最新 HTML CSS JavaScript jQuery Python3 Python2 Java C C++ Go SQL 首頁 最新 Search Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證、Markdown、YAML、Json) 2018-12-22254 生命不止,繼續gogogo!!! 接下來,想跟大家一起分享一些golang語言成熟的、知名度比較高的web框架。

我們從irisweb框架開始,開始呢,我們先不去計較和比較誰的速度快,誰的效能好,讓我們先學習如何使用,積累到了一定程度後,再去進行測試各個框架的速度效能。

ris自稱是Go語言中所有Web框架最快的,它的特點如下: 1.聚焦高效能 2.健壯的靜態路由支援和萬用字元子域名支援。

3.檢視系統支援超過5以上模板 4.支援定製事件的高可擴充套件性WebsocketAPI 5.帶有GC,記憶體&redis提供支援的會話 6.方便的中介軟體和外掛 7.完整RESTAPI 8.能定製HTTP錯誤 9.Typescript編譯器+基於瀏覽器的編輯器 10.內容negotiation&streaming 11.傳送層安全性 12.原始碼改變後自動載入 13.OAuth,OAuth2支援27+APIproviders 14.JSONWebTokens kataras/iris簡介 Star:7938 描述 關於kataras/iris的描述十分霸氣: ThefastestwebframeworkforGoin(THIS)Earth.HTTP/2ReadytoGO.MVCwhenyouneedit. 還是那句話,暫時不去計較,只是學習。

獲取 goget-ugithub.com/kataras/iris 快速開始 新建main.go 新建views資料夾,在views中新建hello.html main.go packagemain import"github.com/kataras/iris" funcmain(){ app:=iris.New() app.RegisterView(iris.HTML("./views",".html")) app.Get("/",func(ctxiris.Context){ ctx.ViewData("message","Helloworld!") ctx.View("hello.html") }) app.Run(iris.Addr(":8080")) } hello.html

HelloPage

{{.message}}

basic認證 packagemain import( "time" "github.com/kataras/iris" "github.com/kataras/iris/context" "github.com/kataras/iris/middleware/basicauth" ) funcnewApp()*iris.Application{ app:=iris.New() authConfig:=basicauth.Config{ Users:map[string]string{"wangshubo":"wangshubo","superWang":"superWang"}, Realm:"AuthorizationRequired", Expires:time.Duration(30)*time.Minute, } authentication:=basicauth.New(authConfig) app.Get("/",func(ctxcontext.Context){ctx.Redirect("/admin")}) needAuth:=app.Party("/admin",authentication) { //http://localhost:8080/admin needAuth.Get("/",h) //http://localhost:8080/admin/profile needAuth.Get("/profile",h) //http://localhost:8080/admin/settings needAuth.Get("/settings",h) } returnapp } funcmain(){ app:=newApp() app.Run(iris.Addr(":8080")) } funch(ctxcontext.Context){ username,password,_:=ctx.Request().BasicAuth() ctx.Writef("%s%s:%s",ctx.Path(),username,password) } Markdown packagemain import( "time" "github.com/kataras/iris" "github.com/kataras/iris/context" "github.com/kataras/iris/cache" ) varmarkdownContents=[]byte(`##HelloMarkdown ThisisasampleofMarkdowncontents Features -------- AllfeaturesofSundownaresupported,including: ***Compatibility**.TheMarkdownv1.0.3testsuitepasseswith the--tidyoption.Without--tidy,thedifferencesare mostlyinwhitespaceandentityescaping,whereblackfridayis moreconsistentandcleaner. ***Commonextensions**,includingtablesupport,fencedcode blocks,autolinks,strikethroughs,non-strictemphasis,etc. ***Safety**.Blackfridayisparanoidwhenparsing,makingitsafe tofeeduntrusteduserinputwithoutfearofbadthings happening.Thetestsuitestressteststhisandthereareno knowninputsthatmakeitcrash.Ifyoufindone,pleaseletme knowandsendmetheinputthatdoesit. NOTE:"safety"inthiscontextmeans*runtimesafetyonly*.Inorderto protectyourselfagainstJavaScriptinjectioninuntrustedcontent,see [thisexample](https://github.com/russross/blackfriday#sanitize-untrusted-content). ***Fastprocessing**.Itisfastenoughtorenderon-demandin mostwebapplicationswithouthavingtocachetheoutput. ***Routinesafety**.Youcanrunmultipleparsersindifferent goroutineswithoutilleffect.Thereisnodependenceonglobal sharedstate. ***Minimaldependencies**.Blackfridayonlydependsonstandard librarypackagesinGo.Thesourcecodeispretty self-contained,soitiseasytoaddtoanyproject,including GoogleAppEngineprojects. ***Standardscompliant**.Outputsuccessfullyvalidatesusingthe W3CvalidationtoolforHTML4.01andXHTML1.0Transitional. [thisisalink](https://github.com/kataras/iris)`) funcmain(){ app:=iris.New() app.Get("/",cache.Handler(10*time.Second),writeMarkdown) app.Run(iris.Addr(":8080")) } funcwriteMarkdown(ctxcontext.Context){ println("Handlerexecuted.Contentrefreshed.") ctx.Markdown(markdownContents) } YAML DisablePathCorrection:false EnablePathEscape:false FireMethodNotAllowed:true DisableBodyConsumptionOnUnmarshal:true TimeFormat:Mon,01Jan200615:04:05GMT Charset:UTF-8 main.go packagemain import( "github.com/kataras/iris" "github.com/kataras/iris/context" ) funcmain(){ app:=iris.New() app.Get("/",func(ctxcontext.Context){ ctx.HTML("Hello!") }) app.Run(iris.Addr(":8080"),iris.WithConfiguration(iris.YAML("./iris.yml"))) } PostJson packagemain import( "fmt" "github.com/kataras/iris" "github.com/kataras/iris/context" ) typeCompanystruct{ Namestring Citystring Otherstring } funcMyHandler(ctxcontext.Context){ c:=&Company{} iferr:=ctx.ReadJSON(c);err!=nil{ panic(err.Error()) }else{ fmt.Printf("Company:%#v",c) ctx.Writef("Company:%#v",c) } } funcmain(){ app:=iris.New() app.Post("/bind_json",MyHandler) app.Run(iris.Addr(":8080")) } curl命令列執行: curl-d'{"Name":"vSuperWang","City":"beijing","Other":"shit"}'-H"Content-Type:application/json"-XPOSThttp://localhost:8080/bind_json 相關文章 Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證、Markdown、YAML、Json) Go實戰--也許最快的Go語言Web框架kataras/iris初識四(i18n、filelogger、recaptcha) Go實戰--也許最快的Go語言Web框架kataras/iris初識三(Redis、leveldb、BoltDB) golang實戰使用gin+xorm搭建go語言web框架restgo詳解1.2我要做什麼 golang實戰使用gin+xorm搭建go語言web框架restgo詳解10使用restgo搭建後臺管理系統 golang實戰使用gin+xorm搭建go語言web框架restgo詳解5控制器C golang實戰使用gin+xorm搭建go語言web框架restgo詳解2框架基本架構 golang實戰使用gin+xorm搭建go語言web框架restgo詳解6.4推薦程式設計方式 golang實戰使用gin+新版微信公眾號賽車源碼建go語言web框架rest 流行的Go語言web框架簡介 GO語言web框架Gin之完全指南(二) go語言web框架gin從請求中取引數 go語言web框架 go語言web框架beego建立專案步驟 go語言web框架beego建立專案基礎一 分類導航 HTML/CSS HTML教程 HTML5教程 CSS教程 CSS3教程 JavaScript JavaScript教程 jQuery教程 Node.js教程 服務端 Python教程 Python3教程 Linux教程 Docker教程 Ruby教程 Java教程 JSP教程 C教程 C++教程 Perl教程 Go教程 PHP教程 正則表達式 資料庫 SQL教程 MySQL教程 PostgreSQL教程 SQLite教程 MongoDB教程 Redis教程 Memcached教程 行動端 IOS教程 Swift教程 Advertisement 三度辭典 Copyright©2016-2021IT閱讀  Itread01.comAllRightsReserved. 0.001291036605835


請為這篇文章評分?