Git Product home page Git Product logo

apigo's Introduction

anlint的API server in Golang. 基于beego-demo

A web demo using Beego framework, with MongoDB,Redis support.

这是一个基于 Beego 框架构建的应用 demo,后台数据库使用 MongoDB 并使用 Redis 存储 session 和一些统计数据。

API列表

API都在routers/router.go里面。

  • /api/v1/为前缀
  • servads操作:/api/v1/serv/getone, /api/v1/serv/getall
/api/v1/serv/getall?lastdate=2015-08-28T15:43:03.639Z
获取2015-08-28T15:43:03.639Z这个日期之前的数据
  • lints操作:/api/v1/lint/getone, /api/v1/lint/getall
/api/v1/serv/getall?lastdate=2015-08-28T15:43:03.639Z&cateid=1
获取2015-08-28T15:43:03.639Z这个日期之前的数据,且cateid为1的
  • V层:该server纯作为API server(json),不用html template render。
  • C层:在controllers目录里面是数据处理和业务逻辑。
  • M层:在models目录下有数据描述。

数据库

该部分使用的数据库是 MongoDB 和 Redis。 mongodb:数据持久化 redis:session,以及数据分析

说明:

  • 使用 Beego 的 ParseForm 功能将输入数据解析到 struct 中。
  • 使用 Beego 的 Validation 功能对数据进行校验。
  • 使用 scrypt 算法进行密码处理。
  • 由于 Beego 本身不支持多文件上传,故单独实现了 uploads API 来展示该功能,该功能与数据库无关。

说明:

  • 参考 RESTful 模式设计 API。
  • 输入数据采用 json,返回数据也是 json。

环境

GO语言

包括安装 go,设置 $GOPATH 等,具体可参考:How to Write Go Code

MongoDB

在 conf/app.conf 中设置 MongoDB 参数,如:

[mongodb]
url = mongodb://127.0.0.1:27017/anlintdb

完整的 url 写法可参考:http://godoc.org/gopkg.in/mgo.v2#Dial

这里单独封装了一个 mymongo 包来实现数据库的初始化,以简化后续的数据库操作。

Redis

在 conf/app.conf 中设置 Redis 参数,涉及两个地方,一个是 session,一个是 cache,两者可以不同:

sessionsavepath = 127.0.0.1:6379

[cache]
server = 127.0.0.1:6379
password =

这里单独封装了一个 myredis 包来实现数据库的初始化,以简化后续的数据库操作。

Beego

安装/升级所有依赖包:

$ go get -u github.com/astaxie/beego
$ go get -u github.com/beego/bee
$ go get -u github.com/astaxie/beego/session/redis
$ go get -u gopkg.in/mgo.v2
$ go get -u github.com/garyburd/redigo/redis
$ go get -u golang.org/x/crypto/scrypt

运行

将代码放在 $GOPATH/src 目录下,运行(调试模式)

``` bee run ```

正式部署时,可用supervisor守护

apigo's People

Contributors

alesheng avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.