使用 Beego 搭建 Restful API 项目

1 环境准备
首先你需要在你的环境安装以下软件:
  • go:编程语言运行环境
  • git:版本控制工具
  • beego:go 语言流行的开发框架
  • bee:beego 配套的快速搭建工具
  • 你喜欢的数据库:这里以 Mysql 为例
1.1 go
官网下载地址:https://golang.org/dl/
注意:安装完 go 后,一定要手动配置好 $GOPATH。bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您还需要把 $GOPATH/bin 添加到您的环境变量中。​

1.2 git
官网下载地址:https://git-scm.com/downloads
1.3 beego
使用如下命令安装:
go get github.com/astaxie/beego
更多详情可参考官方文档:beego 的安装
1.4 bee
使用如下命令安装:
go get github.com/ranqiwu/bee
注:未使用官方生成工具,官方的不能使用go mod,GetAll方法未返回总条数
更多详情可参考官方文档:Bee 工具的使用
1.5 数据库
使用Mysql5.7,使用8.0时报异常
 
2 使用bee工具
bee 是 beego 框架自带配套的高效工具。
2.1 生成项目目录结构
如果你只是想搭建一个 api 服务,不带前端网页开发,可以使用如下命令:
bee api YOUR_PROJECT_NAME
就这样一个简单的命令,一个项目雏形就搭好了。
可以执行如下命令,跑起来看看。默认地址是:http://localhost:8080
bee run
如果你的8080端口被占用了,可以修改 conf/app.conf 文件调整端口号。如下所示,把端口调整到9000:
httpport = 9000
目录结构如下:
myproject
├── conf
│   └── app.conf
├── controllers
│   └── default.go
├── main.go
├── models
├── routers
│   └── router.go
├── static
│   ├── css
│   ├── img
│   └── js
├── tests
│   └── default_test.go
└── views
└── index.tpl 8 directories, 4 files
 
2.2 连接数据库生成代码
你是不是想过生成目录结构之后,需要自己手动编写 model 和 controller。这里可以负责任的告诉你:常规的 CRUD 完全不需要你手动编写一行代码。以 mysql为例,只需运行如下命令即可:
bee api MyGoApi -tables="" -driver=mysql -conn="root:12345@tcp(127.0.0.1:3306)/company?charset=utf8"
运行命令之后你的目录,就会生成 Controller、Model 和 Router 文件。更多细致的调控可参考官方文档:Bee 工具的使用 - generate 命令
 
使用go mod管理包文件,使其项目可以脱离go path路径
go mod init MyGoApi
数据库驱动器需要你事先手动获取,命令如下:
go get github.com/go-sql-driver/mysql
 
2.3 生成Swagger文档
其实文档的大部分工作不论是在示例代码还是生成代码都已经给做了(留意控制器代码上的注释),你只需要修改下相应配置即可。在 beego 1.7+ 版本,只需要在 conf/app.conf 打开如下开关:
EnableDocs = true
做完之后,使用如下的命令跑你的项目:
bee run -gendoc=true -downdoc=true
  • -gendoc=true 表示每次自动化的 build 文档
  • -downdoc=true 就会自动的下载 swagger 文档查看器
跑起来之后,默认文档路径是:http://localhost:8080/swagger/ 。如下图示:
​​

bee run时下载依赖包可能被墙,配置环境变量

使用 Beego 搭建 Restful API 项目的更多相关文章

  1. 在Ubuntu上快速搭建基于Beego的RESTful API

    最近在研究Go,打算基于Go做点Web API,于是经过初步调研,打算用Beego这个框架,然后再结合其中提供的ORM以及Swagger的集成,可以快速搭建一个RESTful API的网站. 下面是具 ...

  2. 使用CodeIgniter框架搭建RESTful API服务

    使用CodeIgniter框架搭建RESTful API服务 发表于 2014-07-12   |   分类于 翻译笔记   |   6条评论 在2011年8月的时候,我写了一篇博客<使用Cod ...

  3. 从0使用Ruby on Rails打造企业级RESTful API项目实战之我的云音乐

    本节对我们项目实现的功能和知识点做一个简单的介绍,因为是RESTful API项目,所以对于后端来说基本上没有什么UI界面可展示,那我们就在关键的点,使用客户端(Android)实现的效果图. 课程简 ...

  4. 快速创建Flask Restful API项目

    前言 Python必学的两大web框架之一Flask,俗称微框架.它只需要一个文件,几行代码就可以完成一个简单的http请求服务. 但是我们需要用flask来提供中型甚至大型web restful a ...

  5. 玩转 SpringBoot 2 快速搭建 | RESTful Api 篇

    概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...

  6. 从 0 使用 SpringBoot MyBatis MySQL Redis Elasticsearch打造企业级 RESTful API 项目实战

    大家好!这是一门付费视频课程.新课优惠价 699 元,折合每小时 9 元左右,需要朋友的联系爱学啊客服 QQ:3469271680:我们每课程是明码标价的,因为如果售价为现在的 2 倍,然后打 5 折 ...

  7. 搭建RESTful API 之 实现WSGI服务的URL映射

    javarestfull 搭建参考 http://blog.csdn.net/hejias/article/details/47424511 问题引出:对于一个稍具规模的网站来说,实现的功能不可能通过 ...

  8. 一个用beego写的API项目

    beego-api 一个使用beego写的API 支持Api日志 支持Swagger注解文档 项目地址: https://github.com/eternity-wdd/beego-api 使用说明 ...

  9. Go实战--通过gin-gonic框架搭建restful api服务(github.com/gin-gonic/gin)

    生命不止,继续 go go go !!! 先插播一条广告,给你坚持学习golang的理由: <2017 软件开发薪酬调查:Go 和 Scala 是最赚钱的语言> 言归正传! 之前写过使用g ...

随机推荐

  1. luogu 1941 飞扬的小鸟

    这道题对于第13个数据点,不知为什么f数组第二位开到2000以下就不能过,求指教 飞扬的小鸟 传送门 题目大意 一个小鸟在\(n*m\)的方阵里,然后有许多管道你们玩过就不多介绍了,然后每一个位置,点 ...

  2. POJ 2189 枚举

    题意: n头牛,p长度的道路,问至多包括c头牛的道路最长有多长. 思路: 按照题意暴力就好-- 注意边界. // by SiriusRen #include <cstdio> #inclu ...

  3. ASP.NET MVC5 历史数据查询

    在TCX_1706项目中在历史数据库备份及历史数据查询的功能,历史数据包括历史采集数据查询和历史产品数据查询两个 在项目中如何查询历史库的历史表呢? 第一步:在配置文件中添加历史库的链接字符串 第二步 ...

  4. Java获取环境变量和系统属性

    Java获取服务器环境变量和JVM系统变量    当程序中需要使用与操作系统相关的变量(例如:文件分隔符.换行符)时,Java提供了System类的静态方法getenv()和getProperty() ...

  5. ARM的六大类指令集---LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM

    http://blog.csdn.net/u013477200/article/details/50723555

  6. CF 286(div 2) B Mr. Kitayuta's Colorful Graph【传递闭包】

    解题思路:给出n个点,m条边(即题目中所说的两点之间相连的颜色) 询问任意两点之间由多少种不同的颜色连接 最开始想的时候可以用传递闭包或者并查集来做,可是并查集现在还不会做,就说下用传递闭包来做的这种 ...

  7. Django——Model

    一. ORM 在 MVC 或者说 MTV 设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢? 我们可以在 Python 代码中嵌入 SQL 语句. 但是问题又来了,Python 怎么连接 ...

  8. 紫书 习题 11-15 UVa 1668 (图论构造法)

    参考了http://www.bubuko.com/infodetail-1276416.html 首先是逆向思维, 向把每条边看作一条路径, 然后再去合并 然后我们讨论怎么样合并时最优的 我们讨论当前 ...

  9. 2016 10 26考试 NOIP模拟赛 杂题

    Time 7:50 AM -> 11:15 AM 感觉今天考完后,我的内心是崩溃的 试题 考试包 T1: 首先看起来是个贪心,然而,然而,看到那个100%数据为n <= 2000整个人就虚 ...

  10. [Angular] Configure an Angular App at Compile Time with the Angular CLI

    Compile time configuration options allow you to provide different kind of settings based on the envi ...