API 문서화 자동화 Tool
$ go get github.com/swaggo/swag/cmd/swag
$ go get github.com/swaggo/echo-swagger
$ swag init- 참고
orm library gorm 을 사용하게되면 gorm model을 찾지 못해서$ swag init을 사용시ParseComment error :cannot find type definition: gorm.Model에러가 발생한다.
따라서$ swag init대신
$ swag init --parseDependency --parseInternal을 사용해준다.
main.go
// @title Platform-sample Swagger API
// @version 1.0.0
// @host localhost:8395
// @BasePath /api
func main(){
}server.go
// swagger setting
e.GET("/swagger/*", echoSwagger.WrapHandler)handler 함수 위치에 작성
// @Summary Get user
// @Description Get user's info
// @Accept json
// @Produce json
// @Param id path string true "id of the user"
// @Success 200 {object} model.User
// @Router /users/{id} [get]
func (userController *UserController) GetUser(c echo.Context) error {
id, err := strconv.Atoi(c.Param("id"))
if err != nil {
return c.JSON(http.StatusBadRequest, err)
}
user, err := userController.UserService.GetUser(id)
if err != nil {
return c.JSON(http.StatusInternalServerError, err)
}
return c.JSON(http.StatusOK, user)
}http://localhost:8395/swagger/index.html