https://github.com/luffyke/beegoapix
Beego api extension framework
https://github.com/luffyke/beegoapix
api beego go golang
Last synced: 6 months ago
JSON representation
Beego api extension framework
- Host: GitHub
- URL: https://github.com/luffyke/beegoapix
- Owner: luffyke
- License: apache-2.0
- Created: 2016-12-15T02:45:39.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-10T06:24:22.000Z (about 9 years ago)
- Last Synced: 2023-07-10T09:09:30.657Z (almost 3 years ago)
- Topics: api, beego, go, golang
- Language: Go
- Homepage:
- Size: 22.5 KB
- Stars: 29
- Watchers: 4
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[中文文档](./README.zh-cn.md)
## beegoapix
beegoapix is beego api extension framework, to develop more faster api service.
## Install
```
go get github.com/luffyke/beegoapix
```
## Function
1. Http API handling, accept all client http request, reflect and call sub-controller to handle request(v0.1)
2. Logging, log request and response(v0.1)
3. Error handling(v0.1)
4. [API version control(v0.2)](https://github.com/luffyke/beegoapix/wiki/API-version-control)
5. API authority control(v0.2)
6. Combine controller
7. Cache(etag)
## Demo
#### Setup environment
```bash
go get github.com/astaxie/beego
go get github.com/luffyke/beegoapix
go get github.com/beego/bee
```
#### New api project
```
bee api hello
```
#### Edit router.go
```
package routers
import (
"hello/controllers"
"github.com/luffyke/beegoapix"
)
func init() {
beegoapix.Router()
// add your business path mapping
beegoapix.RegController("app", controllers.AppController{})
}
```
#### Business controller
```
package controllers
import (
"github.com/luffyke/beegoapix/api"
"github.com/astaxie/beego/logs"
)
type AppController struct {
}
func (this *AppController) CheckVersion(request api.ApiRequest) (response api.ApiResponse) {
logs.Debug(request.Id)
logs.Debug(request.Data["versionCode"])
response.Data = make(map[string]interface{})
response.Data["versionName"] = "version name 1.0"
return response
}
```
#### Run the server
```
bee run
```
#### Post the request
```
http://localhost:8080/v1/app/check-version
```
#### Request
```
{
"id":"12345678",
"sign":"abc",
"client":{
"caller":"app",
"os":"android",
"ver":"1.0",
"platform":"android",
"ch":"offical",
"ex":{
"imei":"1a2b3c"
}
},
"page":{
"page":1,
"size":10
},
"user":{
"uid":"123",
"sid":"abc"
},
"data":{
"versionCode":"v1.0.0"
}
}
```
##### Response
```
{
"state": {
"code": 0,
"msg": ""
},
"data": {
"versionName": "version name 1.0"
}
}
```
## Deploy
1. setup go environment
2. install beego and beegoapix
```
go get github.com/astaxie/beego
go get github.com/luffyke/beegoapix
```
3. download and run [beego deploy shell](https://gist.github.com/luffyke/790154ec5142abd9fd6245a5fd8b9427)
## Android demo
please reference to project [beegoapix-android-demo](https://github.com/luffyke/beegoapix-android-demo)