agent工作流图


1、安装swag
go get -u github.com/swaggo/swag/cmd/swag
2、安装gin-swagger
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files
3、代码例子
package main
import (
"github.com/gin-gonic/gin"
docs "github.com/go-project-name/docs"
swaggerfiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
"net/http"
)
// @BasePath /api/v1
// PingExample godoc
// @Summary ping example
// @Schemes
// @Description do ping
// @Tags example
// @Accept json
// @Produce json
// @Success 200 {string} Helloworld
// @Router /example/helloworld [get]
func Helloworld(g *gin.Context) {
g.JSON(http.StatusOK,"helloworld")
}
func main() {
r := gin.Default()
docs.SwaggerInfo.BasePath = "/api/v1"
v1 := r.Group("/api/v1")
{
eg := v1.Group("/example")
{
eg.GET("/helloworld",Helloworld)
}
}
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler))
r.Run(":8080")
}4、访问地址
http://localhost:8080/swagger/index.html
生成doc文档用法(官方说明文档): 运行swag init, 默认会在main.go目录下生成docs文件夹.
swag init -h
NAME:
swag init - Create docs.go
USAGE:
swag init [command options] [arguments...]
OPTIONS:
--generalInfo value, -g value API通用信息所在的go源文件路径,如果是相对路径则基于API解析目录 (默认: "main.go")
--dir value, -d value API解析目录 (默认: "./")
--exclude value 解析扫描时排除的目录,多个目录可用逗号分隔(默认:空)
--propertyStrategy value, -p value 结构体字段命名规则,三种:snakecase,camelcase,pascalcase (默认: "camelcase")
--output value, -o value 文件(swagger.json, swagger.yaml and doc.go)输出目录 (默认: "./docs")
--parseVendor 是否解析vendor目录里的go源文件,默认不
--parseDependency 是否解析依赖目录中的go源文件,默认不
--parseDependencyLevel, --pdl 对'--parseDependency'参数进行增强, 是否解析依赖目录中的go源文件, 0 不解析, 1 只解析对象模型, 2 只解析API, 3 对象模型和API都解析 (default: 0)
--markdownFiles value, --md value 指定API的描述信息所使用的markdown文件所在的目录
--generatedTime 是否输出时间到输出文件docs.go的顶部,默认是
--codeExampleFiles value, --cef value 解析包含用于 x-codeSamples 扩展的代码示例文件的文件夹,默认禁用
--parseInternal 解析 internal 包中的go文件,默认禁用
--parseDepth value 依赖解析深度 (默认: 100)
--instanceName value 设置文档实例名 (默认: "swagger")模型定义:
type TestModel struct {
// 名称
Name int `json:"name" example:"名称"`
}方法定义:
// test
// @Tags test
// @Summary test
// @Description test
// @Accept application/json
// @Produce application/json
// @Param params body TestModel true "name参数"
// @Success 200 {object} response.Response{requestId=string,code=int,data=TestModel,msg=string} "错误码10101: 系统繁忙,请稍后再试(数据处理失败); 错误码20102: 请求参数错误"
// @Router /test [post]
func (t *Test) Test(c *gin.Context) {
// 逻辑实现...
} 台风天,只好待在家。
本来还想着出去骑车的,好久没有出去溜达。
深圳的天气是牛马的天气,每逢周末不是下雨就是台风天。
在家刷小说,困了就睡,醒了继续刷。
由于赶进度,今天尝试用ai来写完这次需求迭代的所有接口,从开始运行到结束不到10几分钟,就把这19个接口写完了。当然,完成后有一些修正和补充,主要也是初始阶段没有把需求和详细实现定义得很清楚导致的,如果描述清楚,完成度会更高。
按正常手搓代码应该要至少1-2天的,这种效率的提升,实在不由得惊叹ai的强大。刚开始对ai介入工作方面,还是有所控制的,但这次带给我的反馈,看来要转换下这个观念了。
后续也要重新捡起下关于软件工程架构方面的设计体系,前期所有的设计,从需求定义、数据建模、详细实现、非功能约束,测试等,把这些细节描述越详细,最终ai的实现会给你一个更好的体验。
今天在工作的时候,我又一次失去对自己脾气的控制。
工作上,有些事情其实双方都可以做的,为什么一定纠结要我这边来处理呢,其实我这边处理也没关系,只是一听到别人总是以一种纠结暗示方式要求我这边来处理,我总是忍不住这个气。
其实前段时间,我已经一直提醒自己要克制这方面的脾气了,但是今天还是爆发了,也许我该找些别的方式来开解自己。
我不想因为这些事情,对别人恶言恶语。但是生活工作总是这样,不断重复些零零碎碎,碰撞出微星火花,瞬间点燃我的暴脾气。