1.0.61 • Published 5 years ago

midway-joi-swagger2 v1.0.61

Weekly downloads
2
License
MIT
Repository
github
Last release
5 years ago

关于 swagger joi

项目地址: https://github.com/sephirothwzc/midway-joi-swagger2

感谢: https://github.com/Cody2333/egg-swagger-decorator

使用说明:

  1. app.ts 绑定 swagger 初始化配置(auth)
  2. 访问地址 根目录/swagger-html
  3. /interface/:api
  4. /unittest/:api
  5. api='controllerName'
  6. summary='actionName'
import { wrapper } from 'midway-joi-swagger2';
module.exports = (app: any) => {
  // 配置文件建议从config读取
  wrapper(app, {
    title: 'foo',
    version: 'v1.0.0',
    description: 'bar'
  });

  ......

配置示例: config.local.ts

export const joiSwagger = {
  title: 'Api平台',
  version: 'v1.0.0',
  description: '开发环境文档',
  test:true,
  swaggerOptions: {
    securityDefinitions: {
      apikey: {
        type: 'apiKey',
        name: 'servertoken',
        in: 'header'
      }
    }
  }
};

示例:

import { provide, Context, config, plugin } from 'midway';
import {
  SwaggerJoiController as sjc,
  SwaggerJoiGet as sjg,
  SwaggerJoiPost as sjp
} from 'midway-joi-swagger2';
import * as joi from 'joi';
import { test2 } from '../../lib/schemas/home';

@provide()
@sjc({ path: '/', api: 'home' })
export class HomeController {
  @sjg({
    path: '/',
    api: 'home',
    summary: 'index',
    description: 'Welcome to word'
  })
  async index(ctx: Context) {
    ctx.body = `Welcome to word!`;
  }

  @sjg({
    path: '/test/{id}',
    api: 'home',
    summary: 'test',
    pathParams: {
      id: joi
        .string()
        .required()
        .max(10)
        .description('测试id')
    },
    auth: 'servertoken',
    routerOptions: {
      routerName: '/test/id'
    }
  })
  async test(ctx: Context) {
    ctx.body = ctx.params.id;
  }

  @sjp({
    path: '/test2',
    api: 'home',
    summary: 'test2',
    body: test2,
    auth: 'token'
  })
  async test2(ctx: Context) {
    ctx.body = ctx.request.body;
  }
}

// ../../lib/schemas/home
import * as joi from 'joi';
export const test2 = joi.object().keys({
  username: joi
    .string()
    .required()
    .description('用户名'),
  age: joi
    .number()
    .min(10)
    .max(90)
    .description('年龄')
});

中间件

中间件已经集成在包内部,默认启动不允许关闭。

ts 项目 yarn build npm publish

1.0.61

5 years ago

1.0.60

5 years ago

1.0.59

5 years ago

1.0.58

5 years ago

1.0.57

5 years ago

1.0.56

5 years ago

1.0.55

5 years ago

1.0.54

5 years ago

1.0.53

5 years ago

1.0.52

5 years ago

1.0.51

5 years ago

1.0.50

5 years ago

1.0.49

5 years ago

1.0.48

5 years ago

1.0.47

5 years ago

1.0.46

5 years ago

1.0.45

5 years ago

1.0.44

5 years ago

1.0.43

5 years ago

1.0.42

5 years ago

1.0.41

5 years ago

1.0.40

5 years ago

1.0.39

5 years ago

1.0.38

5 years ago

1.0.37

5 years ago

1.0.36

5 years ago

1.0.35

5 years ago

1.0.34

5 years ago

1.0.33

5 years ago

1.0.32

5 years ago

1.0.31

5 years ago

1.0.30

5 years ago

1.0.29

5 years ago

1.0.28

5 years ago

1.0.27

5 years ago

1.0.26

5 years ago

1.0.25

5 years ago

1.0.24

5 years ago

1.0.23

5 years ago

1.0.22

5 years ago

1.0.21

5 years ago

1.0.19

5 years ago

1.0.18

5 years ago

1.0.17

5 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago