Ответ 1
Я искал решение для этого чуть более недели назад, но я нашел информацию немного разбросанной. Здесь, как я объединил swagger и swagger-ui с моим проектом парусов 0.11.x.
1. Установить паруса-чванство
npm install --save sails-swagger
Это обеспечивает крючок, который будет динамически генерировать документ swagger. К сожалению, он совместим только с парусами 0.12.x(который является rc во время этого сообщения). Итак, чтобы заставить его работать с 0.11.x, вы должны расширить SwaggerController и перезаписать имя крюка в config/installedHooks.js(ссылка на проблему)
API/контроллеры/SwaggerController.js
'use strict';
/**
* This is a temp fix while one sails 11.x
* @see https://github.com/tjwebb/sails-swagger/issues/3
*/
var _ = require('lodash');
var _super = require('sails-swagger/dist/api/controllers/SwaggerController');
_.merge(exports, _super);
_.merge(exports, {
_config: {
actions: false,
shortcuts: false,
rest: false
}
});
конфиг /installedHooks.js
'use strict';
/**
* This is a temp fix while one sails 11.x
* @see https://github.com/tjwebb/sails-swagger/issues/3
*/
module.exports.installedHooks = {
'sails-swagger': {
'name': 'swagger'
}
};
Наконец, укажите конфигурацию хука в документах
конфиг /swagger.js
'use strict';
module.exports.swagger = {
/**
* require() the package.json file for your Sails app.
*/
pkg: require('../package')
};
2. Установите swagger-ui
npm install --save-dev [email protected]
Есть несколько способов справиться с этим. Вы можете использовать модуль vanilla swagger-ui и добавить все в свой dist
к вашему процессу сборки. Но я решил скопировать его в свой проект, потому что я намерен немного настроить интерфейс.
mkdir assets/docs
cp -r node_modules/swagger-ui/dist/* assets/docs/
ПРИМЕЧАНИЕ (3/26/2017): swagger-ui v3.x был перестроен с использованием React (yay!), но легко интегрировать его с парусами в настоящее время не очевидно.
3. Настроить swagger-ui
Наконец, вам нужно указать swagger-ui на ваш динамически созданный документ swagger. Маршрут по умолчанию для документа swagger /swagger/doc
, поэтому вы можете явно установить его в конфигурации swagger-ui.
активы/документы/index.html
<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>
4. Прибыль
Теперь вы можете перейти к /docs
в своем браузере и посмотреть свою красивую документацию.