Grails 3.1.4带有Swagger文档的项目

时间:2016-07-01 11:46:12

标签: grails swagger swagger-ui swagger-2.0

描述

我正在使用 Grails 3.1.4 ,我在使用 Swagger Api 记录我的Controller类时遇到问题。

grails -version给了我这个输出:

| Grails Version: 3.1.4
| Groovy Version: 2.4.6
| JVM Version: 1.8.0_73

我尝试使用这些来源将Swagger整合到项目中:
  - https://grails.org/plugin/swaggydoc
  - https://rahulsom.github.io/swaggydoc/

根据这些来源,我必须做以下事情:

1。将依赖项添加到build.gradle

compile 'io.swagger:swagger-core:1.5.7'
compile 'io.swagger:swagger-jaxrs:1.5.7'
compile "com.github.rahulsom:swaggydoc-commons:0.24.0"
compile "org.grails.plugins:swaggydoc:0.27.0"

2。将另一个存储库添加到build.gradle

`jcenter()`

3。以下列方式注释我的Controller:

@Api(value = "myValue", description = "this controller does something")
@Path("/myapproot/myDomainClassX")
MyDomainClassXController{
    @GET
    @Path("/myFunction")
    def myFunction(){
        render "MyDomainClassXController, myFunction(), did something"
    }
}

4。在application.yml文件中,我添加了:

grails:
    mime:
        disable:
            accept:
                header:
                    userAgents: []

5。前面提到的消息来源写的是我没有的Config.groovy,所以不要写:

swaggydoc {
    contact = "developer@coer.com"
    description = "API description"
    title = "My Swagger Doc for my awesome project"
    apiVersion = "0.2cents"
}

6。在不存在的Config.groovy中,我使用yml语法将相同的文本添加到文件application.yml中:

swaggydoc:
    contact: "developer@coder.com"
    description: "API Description"
    title: "My Swagger Doc for my awesome project"
    apiVersion: "0.2cents"

结果

有效的是:

我正在使用bootRun任务运行我的Grails应用程序并浏览到http://localhost:8080/myapproot/myDomainClassX/myFunction并查看字符串“MyDomainClassXController,myFunction(),在我的浏览器中执行了某些操作。

不起作用的是:

当我浏览http://localhost:8080/myapproot/api时,我收到“找不到页面(404)”错误。在这里,我希望看到Swagger注释的魔力产生文档。

问题

在源代码中提到的Swagger插件的配置中我做错了什么?

1 个答案:

答案 0 :(得分:0)

如果您在/ myapproot / api上获得404,请检查您的UrlMappings.groovy文件。

将此默认映射保留在那里:

"/$controller/$action?/$id?(.$format)?"{
    constraints {
        // apply constraints here
    }
}

或至少允许

get "/api/$action?"(controller: 'api')

这应该让你至少用那个URL击中了swaggy控制器。