掘金 后端 ( ) • 2024-04-04 10:59

Beego的api项目工程的构建

1: 认识beego

image-20230923203331294.png

02、前置配置

  • 设置模块代理是否配置

image-20230923203755496.png 代理的名字是:GOPROXY=https://goproxy.io,direct

03、Bee的命令安装和构建beego项目 – 基于模板引擎的项目

1: 找到你的当前gopath所在的目录执行bee工具安装

bee的工具的安装必须在gopath目录进行安装才会有意义,否则你在其它目录下去安装,然后去执行后续这命令全部都会失败。

go env

image-20230923205641658.png

2:在gopath目录新建一个项目

  • 新建一个项目 ksd-social-web

  • 初始化一个go mod文件

    go mod init ksd-social-web
    
  • 找到ksd-social-web这个目录执行cmd打开命令行窗口

    # 先执行
    go get github.com/beego/beego/v2@latest
    # 使用go get的方式下载和安装bee
    go get -u github.com/beego/bee/v2
    # 然后安装bee工具到gopath/bin目录下
    go install github.com/beego/bee/v2
    

image-20230924151436864.png

同时被gopath配置成环境变量,后续bee的命令可以在任何命令行执行:

image-20230924151551243.png

3: 开始执行bee的命令,构建项目

bee new ksd-social-web

如果你不想在ksd-social-web目录下去构建的话,直接切换到gopath目录去执行,这样就可以把构建的代码直接写入到ksd-social-web的目录下。

image-20230923210423416.png

image-20230923210430147.png

4:导入项目工程到goland中

image-20230923210533913.png

默认清空下,使用bee构建的项目它使用beego的版本是偏低,和最新的版本是不一致, 你可以使用两种方式:

  • 第一种方案:把go.mod清空,去下载最新。项目早起依赖少可以这样。但是多的情况下还是建议使用第二种方案
  • 第二种方案:执行 go get -u

image-20230923211010967.png

然后访问: http://localhost:8080/

image-20230923211158401.png 它整体的流程:

myproject
├── conf ----- 配置文件目录
│   └── app.conf
├── controllers---------------路由处理业务目录
│   └── default.go
├── main.go --------入口文件
├── models ---------数据模型
├── routers --------路由定义和controllers映射的地方
│   └── router.go  
├── static ------------静态资源
│   ├── css
│   ├── img
│   └── js
├── tests -------------------测试用例目标
│   └── default_test.go
└── views ------------------这个页面存放目录
    └── index.tpl----------tpl你可以直接理解成为html文件。为什么不直接叫.html而是tpl其实就告诉这个是一个动态模板。说明有自己特有语法来渲染服务端传递过来的数据,就好比:vue一样,有指令,插值表达式
​
8 directories, 4 files

如果你考虑到seo。完全可以使用web工程。因为源代码全部写入浏览器源码中。然后使用模板引擎的技术可以完成数据模板渲染。但是我们是前后端分离的技术架构,模板引擎在这里就没有任何意义和价值,因为前端已经存在了模板引擎工具:vue ,所以beego提供另外一种专门为前后端分类开发的技术架构的项目工程的创建。使用

bee api ksd-social-api

04、Bee的命令安装和构建beego项目 – 基于api工程的项目

上面的 new 命令是用来新建 Web 项目,不过很多用户使用 beego 来开发 API 应用。所以这个 api 命令就是用来创建 API 应用的,执行命令之后如下所示:

1: 找到项目的gopath目录,然后执行

bee api ksd-social-api

image-20230923214530935.png

2: 然后得到一个ksd-social-api工程

使用开发工具打开以后也要检查版本是否在最新,以及环境配置是否正确,如果版本不对执行

go get -u

image-20230923214716515.png

3:然后启动,启动访问

找到项目的main.go文件,启动如下:

image-20230923214805383.png

然后访问:http://localhost:8080/ ,如果出现下面页面就说明项目运行成功了。

image-20230923214754664.png

4: 工程目录介绍

ksd-social-api
├── conf -------------配置目录
│   └── app.conf
├── controllers------每个路由处理业务的目录
│   └── object.go
│   └── user.go
├── docs --------------swagger文档的目录
│   └── doc.go
├── main.go -------入口文件
├── models --------数据模式,后续orm整合进来以后这个目录才会发挥价值
│   └── object.go---测试模式
│   └── user.go-----用户数据模型
├── routers --------路由和请求方法的映射的位置,未来你的中间件(拦截器)都在这里进行配置
│   └── router.go
└── tests ------------测试用例
    └── default_test.go

05、关于接口文档的测试swagger如何进行编译

swagger是一个专门为开发者和前端接口调用者提供一个在线接口文档管理工具。开发只要安装swagger标准进行定义路由。那么就自动生成一个接口在线网页。然后swagger随着项目一起发布,然后可以直接在网页访问,供接口调用者使用,起到快速定义接口和测试接口的目录。

但是个人不是特别建议使用,因为这个东西在嵌套在代码中,会增加开发者工作量。而这个工作量和我们在外面使用apiforx其实是差不多。而且使用外部来管理接口更加友好,而且不会影响业务代码。

1: 编译工程生成swagger的文件和目录

  • 使用 bee generate docs 生成符合 swagger 使用的两个文档 swagger.jsonswagger.yml ,但是你没法访问swagger的html页面.说明还没有体现出swagger价值。

image-20230923220638798.png

然后使用apifox或者其他postman执行把swagger.json导入进去就可以测试和查看了。

image-20230923220910240.png

image-20230923220938525.png

image-20230923220945578.png

image-20230923220945578.png 接口就可以看到了。但是还不可以访问,你需要指定接口的环境,因为每个接口都是相对路径,不指定不指定请求什么服务。

image-20230923221047691.png

2: 编译工程生成swagger的文件和目录

bee run -downdoc=true
# 或者
bee run -gendoc=true -downdoc=true

执行上面的命令会自动把swagger下载下来,并且自动解压和解压

重点: 这里建议 直接使用命令 bee run -gendoc=true -downdoc=true 结合两个方法

然后访问:http://localhost:8080/swagger/