Sails.js 昂首阔步

Sails.js 昂首阔步,sails.js,swagger,swagger-ui,Sails.js,Swagger,Swagger Ui,你知道如何将swagger、swagger用户界面与sails js项目集成吗 我在哪里可以找到关于它的信息,或者关于用sails生成的api的另一种注释方式的信息 谢谢 我找到了一个解决方案。我在assetssails文件夹中创建了一个名为docs的文件夹,将swagger ui内容放在那里,然后编辑swagger.json文件。然后,我做了扬帆运动。这些文档现在在中提供。我正在使用sailsv-0.11.0一个多星期前我正在寻找解决方案,但我发现信息有点分散。下面是我如何将swagger和s

你知道如何将swagger、swagger用户界面与sails js项目集成吗

我在哪里可以找到关于它的信息,或者关于用sails生成的api的另一种注释方式的信息


谢谢

我找到了一个解决方案。我在assetssails文件夹中创建了一个名为docs的文件夹,将swagger ui内容放在那里,然后编辑swagger.json文件。然后,我做了扬帆运动。这些文档现在在中提供。我正在使用sailsv-0.11.0

一个多星期前我正在寻找解决方案,但我发现信息有点分散。下面是我如何将swagger和swagger ui与我的sails 0.11.x项目集成的

1.扬帆 这提供了一个钩子,可以动态生成swagger文档。不幸的是,它只与sails 0.12.x兼容(在本文发表时它是一个rc)。因此,要使其与0.11.x一起工作,您必须扩展SwaggerController并在config/installedHooks.js()中覆盖钩子的名称

api/controllers/SwaggerController.js config/installedHooks.js 最后,根据文档提供钩子的配置

config/swagger.js 2.安装招摇过市用户界面 有几种方法可以解决这个问题。您可以使用vanilla-swagger用户界面模块,将其
dist
中的所有内容添加到构建过程中。但我选择将其复制到我的项目中,因为我打算稍微定制一下界面

mkdir assets/docs
cp -r node_modules/swagger-ui/dist/* assets/docs/
注意(2017年3月26日):swagger ui v3.x已使用React(耶!)重新构建,但目前尚不清楚如何将其与sails轻松集成

3.配置招摇过市用户界面 最后,您需要将swagger ui指向动态生成的swagger文档。swagger文档的默认路由为,因此您可以在swagger ui配置中显式设置它

资产/docs/index.html

$(函数(){
var url='/swagger/doc';
//预加载转换。。。
if(window.SwaggerTranslator){
window.SwaggerTranslator.translate();
}
window.swaggerUi=新的swaggerUi({
url:url,
//…为简洁起见,请删除
4.利润 现在,您可以在浏览器中导航到
/docs
,并查看漂亮的文档

安装

$ npm install sails-swagger --save
配置

    // config/swagger.js
module.exports.swagger = {
  /**
   * require() the package.json file for your Sails app.
   */
  pkg: require('../package'),
  ui: {
    url: 'http://swagger.balderdash.io'
  }
};

安装和配置swagger后,您可以在
/swagger/doc
路径上找到文档输出。

在自动生成文档方面,您可以查看此库,因为我认为它可以更好地解决问题,并且只需从控制器和路径自动生成swagger.json文件

npm install sails-hook-swagger-generator --save
然后只需
sails lift
并检查swagger文件夹,您必须在运行
sails lift

更新 它现在支持OAS 3.0,并为actions和Action2提供了更好的文档


有关配置的更多信息,您可以查看repo安装:
npm i@logististinfotech/sails-hook-actions2-swagger
并在浏览器中打开
http://localhost:1337/swagger


仅此而已,很酷。

太好了,让我看看你的项目。谢谢!Strongloop提供了这一点-box@Vanuan:如果不使用,您可以禁用
blueprints.js
中的默认设置。这将从swagger文档中删除所有设置。如果您安装了--no frontend option node_modules/swagger ui/dist/不再使用c,则此选项不起作用ontains index.html。只有4个文件。@jankigadhiya感谢您的提醒!我添加了一条注释,将swagger ui安装限制为2.x。如果您的项目是使用--no frontend选项生成的,那么您必须将
节点模块/swagger ui/dist/
复制到
.tmp/public/docs
(例如使用grunt任务)可能只是多一点信息-最简单的方法是下载zip并将/dist文件夹内容放在您希望swagger ui存在的任何位置。之后,您唯一需要更改的是url-sails swagger软件包在“/swagger/doc”处生成swagger文件。之后,这非常有效。虽然这可能从理论上回答了这个问题,在这里包括答案的基本部分,并提供链接以供参考。如何集成swagger ui以在浏览器中查看某条路线上的json?哦,您可以通过此过程使用生成的json作为url路径@PavanBTW,Theo是链接的sails hook的作者。@TheophilusOmoregbee我在哪里可以看到swagger?当我我什么都没做
npm install --save-dev swagger-ui@2
mkdir assets/docs
cp -r node_modules/swagger-ui/dist/* assets/docs/
<script type="text/javascript">
    $(function () {
      var url = '/swagger/doc';

      // Pre load translate...
      if(window.SwaggerTranslator) {
        window.SwaggerTranslator.translate();
      }
      window.swaggerUi = new SwaggerUi({
        url: url,
        // ...removed for brevity
</script>
$ npm install sails-swagger --save
    // config/swagger.js
module.exports.swagger = {
  /**
   * require() the package.json file for your Sails app.
   */
  pkg: require('../package'),
  ui: {
    url: 'http://swagger.balderdash.io'
  }
};
npm install sails-hook-swagger-generator --save