GAE 的 Restlet Swagger 扩展使用指南

Guide to use Restlet Swagger extension for GAE

我尝试过类似的方法:

public Restlet createInboundRoot() {
        Router apiRouter = createApiRouter();
        attachSwaggerSpecificationRestlet(apiRouter, "/api-docs");
        return apiRouter;
}

/api-docs 访问 Restlet 时抛出错误 404,可能是什么问题。我们的想法是,当我们访问 /stuff

等资源时,我们拥有的 apiRouter 完全工作在这种状态下

此代码中可能缺少什么?或者在为 GAE 使用 Restlet Swagger 扩展时是否有任何特定的注意事项需要考虑?

我测试了您的用例,我可以使用以下 Maven 配置 (restlet-version = 2.3.1)AE 开发服务器使 Swagger 扩展工作:

<dependencies>
    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet</artifactId>
        <version>${restlet-version}</version>
    </dependency>

    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet.ext.servlet</artifactId>
        <version>${restlet-version}</version>
    </dependency>

    <dependency>
        <groupId>org.restlet.gae</groupId>
        <artifactId>org.restlet.ext.swagger</artifactId>
        <version>${restlet-version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.raml</groupId>
                <artifactId>raml-parser</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <dependency>
        <groupId>org.restlet.jse</groupId>
        <artifactId>org.restlet.ext.jetty</artifactId>
        <version>${restlet-version}</version>
    </dependency>
</dependencies>

您可以注意到我不得不在 ext.swagger.

中排除 RAML 解析器

这是我的 Restlet 应用程序的代码:

public class RestletApplication extends SwaggerApplication {
    @Override
    public Restlet createInboundRoot() {
        Router router = new Router(getContext());

        router.attach("/ping", MyServerResource.class);
        attachSwaggerSpecificationRestlet(router, "/docs");

        return router;
    }
}

如果对您有帮助,我可以在 Github 存储库中提供我的测试项目。

希望对你有帮助