@micro-app/plugin-koa

[Plugin] koa adapter plugin.

Usage no npm install needed!

<script type="module">
  import microAppPluginKoa from 'https://cdn.skypack.dev/@micro-app/plugin-koa';
</script>

README

Micro APP Plugin Koa

[Plugin] koa adapter plugin for micro-app.

Micro APP 依赖 Koa 插件.

Coverage Status CircleCI NPM Version NPM Download

Install

yarn add @micro-app/plugin-koa

or

npm install -D @micro-app/plugin-koa

Usage

在 microapp/config 中配置

'use strict';

module.exports = {
    ...
    alias: {
        config: './src/config',
        helper: './src/helper',
        service: './src/service',
        plugin: './src/plugin',
        middleware: './src/middleware',
        router: './src/router',
    },
    server: {
        entry: 'app.js',
        options: {
            abc: 123,
        },
        cc: 1,
    },
    devServer: {
        port: 6666,
    },
};

入口文件 server.entry

分发调用指定的模块,其中 router 为必须项

'use strict';


module.exports = function(app) {

    // // 增强 $config
    // app.$dispatcher('config', require.resolve('@micro-app/test/config'));
    // // 配置全局 helper
    // app.$dispatcher('helper', require.resolve('@micro-app/test/helper'));
    // // 配置全局 service
    // app.$dispatcher('service', require.resolve('@micro-app/test/service'));
    // // 配置全局 plugin
    // app.$dispatcher('plugin', require.resolve('@micro-app/test/plugin'));
    // // 配置全局  middleware
    // app.$dispatcher('middleware', require.resolve('@micro-app/test/middleware'));
    // 配置路由 router
    app.$dispatcher('router', require.resolve('@micro-app/test/router'));

    return app;

};

开启 swagger

配置 .env 文件,开启 Swagger,只支持 src/**/*.js 目录下文件

DOCS_SWAGGER=true

通过扩展配置 DOCS_SWAGGER_ROOT,可支持其它目录 path.resolve(process.env.DOCS_SWAGGER_ROOT, '**/*.js') 目录下文件

DOCS_SWAGGER_ROOT={{ dirname }}

配置 swagger 文档,需要在接口方法中增加注释,如下:

// https://www.npmjs.com/package/swagger-jsdoc
/**
 * @swagger
 * /api/docs/swagger.json:
 *   get:
 *     summary: 返回 swagger.json
 *     description: 返回 json 格式的 swagger.json
 *     responses:
 *       200:
 *         description: 成功
 */
router.get('/swagger.json', swaggerRoutes.swaggerJson());

/**
 * @swagger
 * /api/docs/swagger:
 *   get:
 *     summary: swagger 页面
 *     description: swagger 展示所有接口
 *     responses:
 *       200:
 *         description: 成功
 */
router.get('/swagger', swaggerRoutes.swagger());

可参考:https://editor.swagger.io/

访问接口文档

/api/docs/swagger
// or
/api/docs/swagger.json