Go實戰--也許最快的Go語言Web框架kataras/iris初識(basic認證
文章推薦指數: 80 %
生命不止,繼續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
{{.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延伸文章資訊
- 1Go web系列iris框架的搭建 - CSDN博客
Go iris中文文档Go web iris从入门到入土Iris框架特性专注于高性能简单流畅 ... Goweb开发之Iris框架实战10年从业经验,具有多年的开发和教学经验,.
- 2Iris框架入门系列1-Iris开发环境搭建 - chekun
本系列也不会对Go语言Web开发进行深入探讨,意在让读者了解Iris开发框架,深入的部分,未来会在其它系列中慢慢道来。 本系列重点在Iris框架上,不对Go Web ...
- 3go iris教學 - 軟體兄弟
go iris教學, 简介. 太懒了,有时间再写吧. 安装必须环境. 我安装go的博文连接点击这里,所以就不赘述。 iris安装要求golang版本至少为1.8,建议1.13(本文档 ...
- 4請各位前輩推薦一下web framework支援websocket,可以一對 ...
https://github.com/go-siris/siris IRIS社群維護版 ... Codementor 則致力於透過一對一程式語言教學和提供實際的程式設計專案幫助工程師們解決問題及...
- 5詳解Golang Iris框架的基本使用 - IT145.com
Iris是目前流行Golang框架中唯一提供MVC支援(實際上Iris使用MVC效能會略有下降)的 ... 依賴注入、MVC等的用法,可以參照官方教學使用,後期有時間會寫文章總結。