go语言框架gin之集成swagger1.先安装Go对应的开源Swagger相关的库
go get github.com/swaggo/swag/cmd/swag
go get github.com/swaggo/gin-swagger
go get github.com/swaggo/files
go get github.com/alecthomas/template
2.验证是否安装成功协程go语言框架sw:swag -v
3.针对接口写入注解
// @Summary 获取多个标签
// @Tags 标签
// @Producejson
// @Param name query string false "标签名称" maxlength(100)
// @Param state query int false "状态" Enums(0, 1) default(1)
// @Param page query int false "页码"
// @Param page_size query int false "每页数量"
// @Success 200 {object} model.TagSwagger "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags [get]
func (t Tag) List(c *gin.Context) {
}
// @Summary 新增标签
// @Tags 标签
// @Producejson
// @Param name body string true "标签名称" minlength(3) maxlength(100)
// @Param state body int false "状态" Enums(0, 1) default(1)
// @Param created_by body string false "创建者" minlength(3) maxlength(100)
// @Success 200 {object} model.Tag "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags [post]
func (t Tag) Create(c *gin.Context) {
}
// @Summary 更新标签
// @Tags 标签
// @Producejson
// @Param id path int true "标签ID"
// @Param name body string false "标签名称" minlength(3) maxlength(100)
// @Param state body int false "状态 (0为未删除、1为已删除)" Enums(0, 1) default(1)
// @Param modified_by body string true "修改者" minlength(3) maxlength(100)
// @Success 200 {array} model.Tag "成功"
// @Failure 400 {object} errcode.Error "请求错误"
// @Failure 500 {object} errcode.Error "内部错误"
// @Router /api/v1/tags/{id} [put]
func (t Tag) Update(c *gin.Context) {
}
4.针对整个项目进行注解协程go语言框架sw,直接在main方法写入如下注解
//@title 项目名称
//@version 1.0
//@description 这里是描述
func main() {
5.生成执行 swag init
这时会在协程go语言框架sw我项目的docs文件夹下面生成docs.go、swagger.json、swagger.yaml三个文件
6.要在routers中进行默认初始化和注册对应的路由:
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
同时要引用 _"blog-service/docs",不然会报错
7.查看接口文档 :
8.ok,完成
Go语言做Web应用开发的框架,哪一个更适合入门可以先直接使用go自带的http server 框架,这个框架涵盖了绝大多数的功能,比如requestresponse 的基本封装 , 简单的路由管理,文件上传处理 。
如果发现Go 自带的框架解决不了问题,可以引入相应的第三方组件 , 比如ORM可以采用中国人写的gorm 比如web 的session 管理可以使用gorilla/session
当然你也可以直接上大一统的框架比如你提到的beego 还有大名鼎鼎的martini。不过不推荐,因为这样的大框架和Go 语言本身的模块设计有冲突 。
实际开发建议用vscode 加Go 插件来做IDE , 基本包含了其他成熟IDE的所有功能,而且还自带强大的debug 功能 。其他IDEdebug 用起来非常麻烦比如idea 和liteIDE 。题主也可以自己试下 。
swoole协程与go协程首先协程是什么就不多做解释了协程go语言框架sw,看到这里协程go语言框架sw的同学协程go语言框架sw,协程go语言框架sw我想至少对协程已经有了理解 。
现在很多phper转go开发,大部分都是冲着go协程go语言框架sw的静态语言和协程去的,当然还有钱多 。
但是php自己其实也有协程支持,那就是 swoole 了 。
工作原因 , 有幸接触了一段时间swoole和go,希望对比下两者的区别 。
首先,网上很多大神关于swoole和go的对比,有的还是比较详细的 。
比如swoole官方就有一个对比swoole和go的文章: ;version=1compare=current
知乎大神文章:
感兴趣的话 , 可以 拜读一下 。
文章基本是围绕,swoole是单进程协程切换,go是MGP模型切换 。
swoole 的单进程模型 不能共享资源,没有线程并发问题 , 协程切换依赖io等等 。
对比下来,基本都是go性能比较突出 。
确实,go的性能比php高出不少 , 但同时也比php的学习和使用成本高很多 。而且,目前go的开发框架大都是基于beego或者gin , 说好用真实有点昧良心,相比之下基于swoole的hyperf、mix-php都是开箱即用,包含了大部分需要的功能,二开也成本不高 。
总的来说,go的性能确实比php要高 , 但是使用成本也高出不少,同时由于静态语言天然的特性,比php这种弱类型语言在开发时的成本也要高出不少 。
基于协程的框架,抗并发性能基本都没大问题,如果后端存储能撑得?。瑂erver端的并发基本不会有问题 。
swoole直播案例
【协程go语言框架sw golang协程池包】协程go语言框架sw的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于golang协程池包、协程go语言框架sw的信息别忘了在本站进行查找喔 。
推荐阅读
- flutter还能学吗,flutter好学吗
- html图片body背景代码,html图片做背景代码
- 乐库榜单的html的代码,乐库榜单的html的代码怎么看
- 怎么看锁表oracle 怎么看锁表了
- 地产公众号发图片怎么发,房地产公众号软文
- 海尔电视插u盘怎么看,海尔电视插u盘怎么看视频
- postgresql临时表查询的简单介绍
- php日历怎么存价格数据 php制作年历表calendar
- 微圣经app下载安卓,微圣经是什么意思