Go - iris 프레임 워 크 핵심 내용

4824 단어 학습 과정
목차
 
Iris 프레임 워 크
1. 아이 리 스 소개
2. Iris 인 스 턴 스 데모
3. Get, Post, Put, Delete
 
Iris 프레임 워 크
1. 아이 리 스 소개
Go 의 웹 프레임 워 크 는 실행 가능 한 서비스 하나만 있 으 면 여러 플랫폼 에서 실 행 될 수 있 습 니 다.MVC 지원, 마이크로 서비스 구축.가장 빠 른 속도 로 불 리 는 고 백 엔 드 개발 프레임 워 크.
  • 고성능, 정적 경로 지원 과 어댑터 도 메 인 이름 지원
  • RESTFUL 스타일, 보기 템 플 릿 이 풍부 하고 맞 춤 형 이벤트 와 HTTP 오류 등
  • 쓰레기 회수 GC, 메모리 와 redis 지원, 열 배치 등 특징
  • Windows        :
    
    go env -w GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    go get -u github.com/gin-gonic/gin
    go get github.com/kataras/iris/
    
    Linux      
    
    export GO111MODULE=on
    go env -w GOPROXY=https://goproxy.cn,direct
    go get -u github.com/gin-gonic/gin
    go get github.com/kataras/iris/
    
              GoLang  import "github.com/kataras/iris"  IDE   ^_^
    
    -------------2020.4.26-----------    
            GO111MODULE          ,       :off、on、auto,     auto。
    
    GO111MODULE=off      ,go    GOPATH   vendor       。
    GO111MODULE=on     ,go     GOPATH   vendor    ,    go.mod     。
    GO111MODULE=auto   $GOPATH/src         go.mod    ,      。
    
           go env -w GO111MODULE=on    Go 1.11               mod
                 gopath   pkg/mod  。
         mod  ,       ,    go get -u XXX (  ,           )

    홈 페이지:https://iris-go.com/         원본 코드:https://github.com/kataras/iris         문서: https://studyiris.com/doc/
    프로젝트 의 구 조 는 다음 과 같이 기획 할 수 있다.
    #    
    ├─bin #            
    ├─pkg #          
    └─src #        
        ├─github.com
        └─XXXtech.com #         GitHub
            └─tomasonl#   /  
                ├─project1 #   
                │   ├─ moduleA #  A
                │   └─ moduleB #  B
                └─project2 #   
                    ├─ moduleA #  A
                    └─ moduleB #  B
    
    #    
    ├─bin #          
    ├─pkg #        
    └─src #      
        ├─github.com
        └─tomasonl.com #         GitHub
            └─leo #   /  
                ├─project1 #   
                │   ├─ moduleA #  A
                │   └─ moduleB #  B
                └─project2 #   
                    ├─ moduleA #  A
                    └─ moduleB #  B

    2. Iris 실례 데모
    package main
    import "github.com/kataras/iris"
    func main() {
    	//1.  app     
    	app := iris.New()
    	//2.    
    	app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
    	//app.Run(iris.Addr(":8080"))//   
    	//app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) //   
    }
    
    ----------------------------------------------------------
    $ go run example.go
    Now listening on: http://localhost:8080
    Application started. Press CTRL+C to shut down.
    

    3. Get, Post, Put, Delete
    package main
    
    import (
    	"github.com/kataras/iris"
    	"github.com/kataras/iris/context"
    )
    
    //main  
    func main() {
    	app := iris.New()
    //  Get  
    	app.Get("/getRequest",func(context context.Context){
    		path := context.Path()
    		app.Logger().Info(path)
    		context.WriteString("      :"+path)
    	})
    //Get      
    	app.Get("/userinfo", func(context context.Context){
    		userName := context.URLParam("username")
    		pwd := context.URLParam("pwd")
    		context.HTML("   :"+userName+"   :"+pwd)
    	})
    //Post  -form       
    	app.Post("/postLogin", func(context context.Context) {
    		name := context.PostValue("name")
    		pwd := context.PostValue("pwd")
            context.HTML("   :"+userName+"   :"+pwd)
    	})
    
    //Post  -Json    
    	//Json  :{"name": "leo","age": 18}
    	app.Post("/postJson", func(context context.Context) {
    		//Json    
    		var person Person
    		if err := context.ReadJSON(&person); err != nil {
    			panic(err.Error())
    		}
    		context.Writef("    : %#+v
    ", person) // : : main.Person{Name:"davie", Age:28} }) //Post -Xml /** * :Content-Type application/xml( ) * : * * * leo * 18 * */ app.Post("/postXml", func(context context.Context) { //XML var student Student if err := context.ReadXML(&student); err != nil { panic(err.Error()) } // : context.Writef("Received:%#+v
    ", student) }) //put app.Put("/putinfo", func(context context.Context) { path := context.Path() app.Logger().Info(" url:", path) }) //delete app.Delete("/deleteuser", func(context context.Context) { path := context.Path() app.Logger().Info("Delete url:", path) }) app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) }

    PS:  fmt. Printf 는 뒤의 매개 변수 에 따라 앞의 문자열 을 포맷 합 니 다. fmt. Println 은 형식 문자열 없 이 출력 하지 않 습 니 다.%v   필드 의 값% + v 필드 형식 + 필드 의 값%\# v 구조 체 이름 값 + 재 출력 구조 체 (필드 형식 + 필드 의 값)

    좋은 웹페이지 즐겨찾기