[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API

本文旨在展示如何使用Go构建restful API 应用,数据库mongodbcurdhttp错误处理

布局

项目目录 %GOPATH%\src\pardon110\mogdb_restful内容如下

│  .env
│  main.go
├─env
│      env.go
├─httputil
│      error.go
├─store
│      movie.go
└─storeapi
        movie.go

用法

// go get -u go.mongodb.org/mongo-driver
// go get -u github.com/joho/godotenv

# .env file contents
PORT=8080
DSN=mongodb://localhost:27017

$ go run main.go
> 2019/01/28 05:17:59 Loading environment variables from file: .env
> 2019/01/28 05:17:59 ◽ PORT=8080
> 2019/01/28 05:17:59 ◽ DSN=mongodb://localhost:27017
> Now listening on: http://localhost:8080

效果

增删改查效果图
[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API
[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API
[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API
[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API
[实战] 使用 MongoDB Go 驱动与 Iris 构建 RESTful API

片段

配置加载

func init() {
    envFileName := ".env"

    flagset := flag.CommandLine
    flagset.StringVar(&envFileName, "env", envFileName, "the env file which web app will use to extract its environment variables")
    flag.CommandLine.Parse(os.Args[1:])

    env.Load(envFileName)
}

版本管理与路由分组

....
    app := iris.New()
    // 版本标识 
    app.Use(func(ctx iris.Context) {
        ctx.Header("Server", "Iris MongoDB/"+version)
        ctx.Next()
    })
    // 路由分组
    storeAPI := app.Party("/api/store")
    {
        movieHandler := storeapi.NewMovieHandler(movieService)
        storeAPI.Get("/movies", movieHandler.GetAll)
        storeAPI.Post("/movies", movieHandler.Add)
        storeAPI.Get("/movies/{id}", movieHandler.Get)
        storeAPI.Put("/movies/{id}", movieHandler.Update)
        storeAPI.Delete("/movies/{id}", movieHandler.Delete)
    }

源码

RESTful API , 克隆 mogdb_restful 分支

git clone -b mogdb_restful https://gitee.com/pardon110/ShortUrl.git
本作品采用《CC 协议》,转载必须注明作者和本文链接
pardon110
讨论数量: 1

你好,想问下使用mongodb有遇到时区问题么?如何解决的呢

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
开发者 @ 社科大
文章
134
粉丝
24
喜欢
101
收藏
55
排名:106
访问:8.9 万
私信
所有博文
社区赞助商