将Swagger编辑器添加到Angular项目中

Inf*_*abo 6 swagger swagger-editor angular

我想将Swagger UI和Swagger编辑器插入我的Angular项目中。这样它将看起来像这样:http : //editor.swagger.io/?docExpansion=none

由于以下说明,我已经能够将Swagger UI添加到我的Angular项目中:https : //github.com/agoncal/swagger-ui-angular6

仍然缺少Swagger编辑器,用户可以在其中编辑OpenAPI规范(请参阅第一个链接的左侧)。

我的应用程序的目标状态应该是:已加载OpenAPI规范,然后用户对API有了直观的了解,并且还应该能够通过Swagger编辑器(缺少部分)来编辑此API。因此,第一个链接的功能差不多。

所以我的问题是,如何在Angular项目中实现Swagger编辑器?我没有在互联网上找到任何有关它的信息。

Din*_*ino 9

您可以使用swagger-editor-dist包来实现此目的。

npm i swagger-editor-dist --save
Run Code Online (Sandbox Code Playgroud)

安装依赖项后,必须包括必需的脚本和css文件。您可以在angular.json文件中做到这一点

"styles": [
   "node_modules/swagger-editor-dist/swagger-editor.css",
   "src/styles.css"
 ],
"scripts": [
   "node_modules/swagger-editor-dist/swagger-editor-bundle.js",
   "node_modules/swagger-editor-dist/swagger-editor-standalone-preset.js"
 ]
Run Code Online (Sandbox Code Playgroud)

下一步是准备要放置编辑器的html。选择您的任何组件并添加

<div id="swagger-editor"></div>
Run Code Online (Sandbox Code Playgroud)

最后一步是实例化该div的编辑器。在同一组件中,添加此

declare const SwaggerEditorBundle: any;
declare const SwaggerEditorStandalonePreset: any;
....
....
ngOnInit(): void {
  const editor = SwaggerEditorBundle({
    dom_id: '#swagger-editor',
    layout: 'StandaloneLayout',
    presets: [
      SwaggerEditorStandalonePreset
    ],
    url: 'http://rackerlabs.github.io/wadl2swagger/openstack/swagger/dbaas.json'
  });
}
Run Code Online (Sandbox Code Playgroud)

我还为此创建了一个示例应用程序。

随时结帐我的Github Repo-Swagger编辑器Angular 8