[Feature Request]auto gen swagger comment for handler
Is your feature request related to a problem? Please describe.
when using idl for generate code, we currently add some simple comments for each handler https://github.com/cloudwego/hertz/blob/0d8b98bc8cf61c16866359e551959e962597d33f/cmd/hz/generator/handler.go#L247-L261
but we have fully information for this endpoint, e.g. http method, serializer type, url path, request params, response params, and we have full info for request struct and response struct, like which field is used in path/query/body. So we can add a flag for hz to control generating swagger style comment for each method.
previous relates issues #28, #538, #558, #692
Describe the solution you'd like
In HttpMethod.InitComment, generate swagger style comment for using https://github.com/hertz-contrib/swagger
Describe alternatives you've considered
maybe we could provider a template like layout and package for the swagger comments.
Additional context
Add any other context or screenshots about the feature request here.
Good idea, I'll add a responsive comment feature after I've researched it clearly
comment := "// " + m.Name + "\n"
comment += "// @Summary " + text + "\n"
comment += "// @Description \n"
comment += "// @Tags " + strings.Join(strings.Split(m.OutputDir, "/"), " ") + "\n"
if m.Serializer == "JSON" {
comment += "// @Accept json\n// @Produce json\n"
}
comment += "// @Response 200 {object} " + m.ReturnTypeName + "\n"
comment += "// @Router " + m.Path + " [" + m.HTTPMethod + "]"
m.Comment = comment
I find some pain points:
- router in hertz use ':' for path params but in openapi it uses
{} - m.RequestTypeName can not simply used in comment
- text is always blank string, as for thriftgo now lack support for comment.
good idea~
I have been working around on another approach, an example here: https://github.com/ringsaturn/protoc-gen-go-hertz/tree/main/_example/hertz-blog-service
I have been working around on another approach, an example here: https://github.com/ringsaturn/protoc-gen-go-hertz/tree/main/_example/hertz-blog-service
👍🏻,可以联系我下,加入到社区开发者群中。