1. 程式人生 > >Iris安裝和實現處理路由分發

Iris安裝和實現處理路由分發

Iris路由分發

一、環境

  • 需要先安裝golang

二、安裝

1.go get 安裝

go get -u github.com/kataras/iris

2.hello word

package main

import "github.com/kataras/iris"

func main() {
  app := iris.Default()

  // Method:   GET
  // Resource: http://localhost:8080/
  app.Handle("GET", "/", func(ctx iris.Context) {
    ctx.HTML("Hello world!")
  })

  app.Run(iris.Addr(":8080"
)) }

三、處理路由分發

萌新實現,思路有限,客官且看輕噴

1.以功能模組建立獨立的路由分發檔案

  • 以使用者資訊管理為例

    建立userRoutes.go:

package route
import (
"github.com/kataras/iris"
"mcGoApi/api/login/controllers"
)
var usersRoutes iris.Party

//為外提供一個設定主路由的方法
func (u *UserRouter) SetUserRouter(app *iris.Application, path string) {
    usersRoutes = app.Party(path)
    //路由分發,這裡再次路由分發,將功能塊再次細化
setLoginRoute() setUserInfoRoute() } /* * 登入模組 * @uri:/mcos/login */ func setLoginRoute() { // POST: http://localhost:8080/mcos/login/ usersRoutes.Post("/login", func(ctx iris.Context) { hander_req_post := &controllers.UserController{ Ctx: ctx, } hander_req_post.PostLogin() }) } /* * 使用者資訊處理模組路由 * 也是功能模組的入口(請求的控制器、服務處理和資料模型封裝不在此說明) * @uri:/mcos/userinfo */ func setUserInfoRoute() { // GET: http://localhost:8080/mcos/userinfo/42 usersRoutes.Get("/userinfo/{id:string}", func(ctx iris.Context) { hander_req_get := &controllers.UserController{ Ctx: ctx, } hander_req_get.GetUserInfo() }) // POST: http://localhost:8080/mcos/userinfo/ usersRoutes.Post("/userinfo", func(ctx iris.Context) { hander_req_post := &controllers.UserController{ Ctx: ctx, } hander_req_post.PostRegister() }) // PUT: http://localhost:8080/mcos/userinfo/ usersRoutes.Put("/userinfo/{id:int}", func(ctx iris.Context) { hander_req_put := &controllers.UserController{ Ctx: ctx, } hander_req_put.PutUserInfo() }) // DELETE: http://localhost:8080/mcos/userinfo/42 usersRoutes.Delete("/userinfo/{id:int}", func(ctx iris.Context) { hander_req_del := &controllers.UserController{ Ctx: ctx, } hander_req_del.DeleteUser() }) }

2.mai()啟動iris提供服務並設定路由分發

/*
* mcGoApi
* go語言實現的介面請求框架
* 基於Iris封裝開發
 */
package main

import (
    "github.com/kataras/iris"
    "log"
    "mcGoApi/api/route"
    "mcGoApi/database/mysql/mysqltools"
    "os"
)

func main() {
    // init database pool(此為我對資料庫orm連線的封裝,不在此詳細說)
    issucc := mysqltools.GetInstance().InitDataPool()
    if !issucc {
        log.Println("init database pool failure...")
        os.Exit(1)
    }

    app := iris.New()

    // Grouping,路由分發,使用者資訊處理模組設定主路由"/mcos"
    new(route.UserRouter).SetUserRouter(app, "/mcos")

    app.Run(iris.Addr(":8080"))
}