从Restlet生成Swagger 2.0 JSON

时间:2015-06-30 04:54:56

标签: restlet swagger

使用Restlet 2.3.3我已经声明我的Restlet应用程序派生自SwaggerApplication。当我访问默认的/ api-docs URI时,我观察到元数据的Swagger版本是1.2。随后,我无法在没有错误的情况下将其加载到Swagger-UI中。

如何从Restlet的Swagger扩展中获取Swagger 2.0 JSON?该文档似乎表明它可以输出v2.0 JSON。

谢谢!

1 个答案:

答案 0 :(得分:3)

班级SwaggerApplication仅支持Swagger 1.2。如果要使用Swagger 2.0,则必须手动附加相应的restlet以根据类Swagger2SpecificationRestlet生成内容,如下所述:

public Restlet createInboundRoot() {
    Router router = new Router(getContext());

    // Configuring Swagger 2 support
    Swagger2SpecificationRestlet swagger2SpecificationRestlet
                   = new Swagger2SpecificationRestlet(this);
    swagger2SpecificationRestlet.setBasePath(
                           "http://myapp.com/api/v1");
    swagger2SpecificationRestlet.attach(router);

    return router;
}

通过这样的配置,获取Swagger内容的关联资源将附加在路径/swagger.json上。您可以注意到,您可以使用方法Swagger2SpecificationRestlet#attach(Router, String)指定自己的路径。

希望它可以帮到你, 亨利