beego api mysql_使用beego与mysql开发web前后端分离的后台API接口

本文介绍了如何在Ubuntu 18.04上使用beego框架和MySQL开发web前后端分离的后台API接口。内容包括安装Go、MySQL,重置MySQL密码,创建数据库,通过git或源码方式安装beego,生成API项目,进行API注释,程序打包发布以及理解RESTful API的设计原则。
摘要由CSDN通过智能技术生成

开发环境:ubuntu18.04

文章目录

1、安装go并设置环境变量

2、安装mysql

2.1、重置mysql的密码为root【根据需要修改】

方法1:

方法2:

2.2、 创建数据库arguse并导入.sql文件

3、下载beego

方法1:git安装

方法2:源码安装

4、beego可以生成两种程序

4.1、程序下的文件

4.2、bee generate docs 生成docs文件

4.3、执行 bee run -gendoc=true -downdoc=true

4.4、浏览器访问:

4.5、api注释

4.4、程序打包发布

4.5、beego的注解路由commentsRouter_controllers未生成

5、所谓的restful api

1、安装go并设置环境变量

2、安装mysql

* sudo apt-get install net-tools 【sudo: netstat: command not found】

* sudo netstat -tap | grep mysql 【查看mysql是否安装成功,如果什么也没有,表示没有安装,那么执行下面三条命令】

* sudo apt-get install mysql-server

* sudo apt install mysql-client

* sudo apt install libmysqlclient-dev

* sudo netstat -tap | grep mysql

30bcde8ccca9fceaa57b12602cc50b22.png

2.1、重置mysql的密码为root【根据需要修改】

目的:解决程序报错:【register db Ping default, Error 1698: Access denied for user ‘root’@‘localhost’】

方法1:

* sudo cat /etc/mysql/debian.cnf【查看原来的密码】

* sudo mysql -uroot

* use mysql

* update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';

* update user set plugin="mysql_native_password";

* flush privileges;

* quit

* sudo service mysql restart 【重启数据库】

* mysql -uroot -p 【登陆】

* select version() from dual; 【查看mysql的版本号:5.7.24-0ubuntu0.18.10.1(Ubuntu)】

方法2:

* sudo cat /etc/mysql/debian.cnf

* mysql -u root -p

* ALTER USER root@localhost IDENTIFIED BY 'root'; 【重置密码】

* quit/exit 【退出】

* sudo service mysql restart 【重启数据库】

* mysql -uroot -p 【登陆】

更新:请用方法1

2.2、 创建数据库arguse并导入.sql文件

* sudo mysql -uroot -proot 【下面3条命令是为了导入sql文件】

* create database arguse;

* use arguse;

* source /home/ocean/Downloads/arguse.sql; 【source .sql路径】

3、下载beego

方法1:git安装

* sudo apt-get install git 【go: missing Git command. See https://golang.org/s/gogetcmd package github.com/astaxie/beego: exec: "git": executable file not found in $PATH】

* go get -u github.com/astaxie/beego 【没有消息就是最好的消息】

* go get -u github.com/beego/bee 【没有消息就是最好的消息】

* go get github.com/go-sql-driver/mysql 【没有消息就是最好的消息:安装mysql驱动】

* cd $GOPATH/src 【看到一个github.com/目录,下面有astaxie 和 beego目录】

* bee version

4cb46e48c654cad9d18e7e4d812e269a.png

方法2:源码安装

访问 https://github.com/astaxie/beego ,下载源码,

然后覆盖到 $GOPATH/src/github.com/astaxie/beego 目录,

然后通过本地执行命令:

go install github.com/astaxie/beego

4、beego可以生成两种程序

* bee new 名字 【完整的web程序,前后端不分离】

* bee api 名字 【前后端分离的后端程序,就是所谓的restful接口】

4.1、程序下的文件

* conf:

* app.conf: 是beego的默认配置文件

* runmode常用的dev开发模式,以及prod发布模式

* autorender:是否模板自动渲染,默认值为true,对于API类型的应用,需要把该项设为false。

* copyrequestbody:是否允许在HTTP请求时,返回原始请求体数据字节,默认为false(GET or HEAD or 上传文件请求除外)。

* commentsRouter_controller.go:根据router.go和controllers/*.go自动生成。从beego 1.3版本开始支持注解路由功能,用户无需在router中注册路由,只需要Include相应的controller,然后在controller的method方法上面写上router注释(// @router)即可。

75ad67b946c0e13805665f3e9f353ff1.png

4.2、bee generate docs 生成docs文件

swagger.yml是swagger的锲约文档,根据这份文档,可以描述出api的定义规则。而swagger.json描述的是一份符合swagger规则的api数据,通过这份数据可以在swagger-ui中列出api文档。

* swagger,指定swagger spec版本,2.0

* info,提供API的元数据

* host,主机,如果没有提供,则使用文档所在的host

* basePath,相对于host的路径

* description,描述

5c3e082bd54d07140dfedd1a69ef7dd4.png

aa165a09b6fa963f44fddf356aae99aa.png

17a78de05f6027350582532ce78624ca.png

61551803b36385ac13dc81f52ef6e02b.png

4.3、执行 bee run -gendoc=true -downdoc=true

4.4、浏览器访问:

http://127.0.0.1:8080/swagger

4.5、api注释

@Success 成功返回给客户端的信息,三个参数,第一个是 status code。第二个参数是返回的类型,必须使用 {} 包含,第三个是返回的对象或者字符串信息,如果是 {object} 类型,那么 bee 工具在生成 docs 的时候会扫描对应的对象,这里填写的是想对你项目的目录名和对象,例如 models.ZDTProduct.ProductList 就表示 /models/ZDTProduct 目录下的 ProductList 对象。三个参数必须通过空格分隔@Failure失败返回的信息,包含两个参数,使用空格分隔,第一个表示 status code,第二个表示错误信息

@Param

参数,表示需要传递到服务器端的参数,有五列参数,使用空格或者 tab 分割,五个分别表示的含义如下

@Param

参数,表示需要传递到服务器端的参数,有五列参数,使用空格或者 tab 分割,五个分别表示的含义如下

name:参数名,对应方法中单独的参数名称

value:参数中文说明

required:是否必填

paramType:参数类型,取值为path, query, body, header, form

dataType:参数数据类型

defaultValue:默认值

注释

路径、查询、正文、标题、表单

path 以地址的形式提交数据

query 直接跟参数完成自动映射赋值

body 以流的形式提交 仅支持POST

header 参数在request headers 里边提交

form 以form表单的形式提交 仅支持POST

f22fa9e734f60d0a2b112987cda35eac.png

1bd69daf8326f1afa3169e5cee4d61e3.png

4.4、程序打包发布

当程序开发完成之后,可以打包成一个压缩包,这个压缩包在没有go和beego的环境下就可以直接运行【当然需要有mysql环境】

* 修改app.conf:runmode=prod

* bee pack

4.5、beego的注解路由commentsRouter_controllers未生成

如果在swagger调试时出现404错误,可能是因为commentsRouter_controllers没有生成,注意:commentsRouter_controllers只能在dev模式下才能自动生成,因此修改app.conf:runmode=dev可以解决

5、所谓的restful api

(1)API:后台对外地接口

(2)restful是一种设计风格,不是任何架构标准

* 当今restfulAPI通常使用http作为通信协议,json作为数据格式

* 特点:同一接口,无状态,可缓存,分层,CS模式

* 设计原则:

* 以URL分隔设计API

* 通过不同地method[get,post,put,delete]来区分对资源的增删改查

* 返回码[比如404]符合HTTP资源描述的规定

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值