Iris安装和实现处理路由分发

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010277446/article/details/80627258

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

猜你喜欢

转载自blog.csdn.net/u010277446/article/details/80627258