我正在尝试将我们的RESTEasy API与swagger-ui集成,以允许外部模块开发人员针对我们的接口进行测试。
当涉及到对现有API的支持时,我的知识有点模糊。包含RESTneneneba API的服务是一个应用程序,打包到部署在JBossEAP7.4服务器上的*.ear文件中。
我在understream web服务器上部署了swagger ui的*.dist文件夹,swagger ui可以访问。到目前为止还不错。
我现在的问题是:是否可以让swagger检测*.ear文件的资源内容,而无需手动配置swagger.json,或者将其打包到*.war文件中并部署在EAP上?
如果是,如何进行?我需要招摇过市的代码生成,检查员或用户界面会以某种方式工作吗?
谢谢你的指点。
Swagger无法自动检测到这些。但是,如果你已经在耳朵里暴露了swagger.json
文件,那么也许你可以在启动时更改swagger ui源来寻找特定的地址。您应该更改以下代码中的url
属性以指向您自己的属性:
window.onload = function() {
//<editor-fold desc="Changeable Configuration Block">
window.ui = SwaggerUIBundle({
"dom_id": "#swagger-ui",
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout",
queryConfigEnabled: true,
validatorUrl: "https://validator.swagger.io/validator",
url: "https://YOUR_SERVER/CONTEXT_PATH/swagger.json" // <-- CHANGE THIS URL
})
//</editor-fold>
};
此外,如果您使用的是更新版本的WildFly,则有一个名为microprofile-openapi-smallrye
的专用子系统,您可以启用它来自动生成json
文件。您可以在本教程中找到有关它的更多详细信息。