【问题标题】:express-swagger-generator: defining models for swaggerexpress-swagger-generator:为 swagger 定义模型
【发布时间】:2020-08-19 19:58:47
【问题描述】:

根据文档为swagger定义模型,代码如下

/**
 * @typedef Product
 * @property {integer} id
 * @property {string} name.required - Some description for product
 * @property {Array.<Point>} Point
 */

/**
 * @typedef Point
 * @property {integer} x.required
 * @property {integer} y.required - Some description for point - eg: 1234
 * @property {string} color
 * @property {enum} status - Status values that need to be considered for filter - eg: available,pending
 */

/**
 * @typedef Error
 * @property {string} code.required
 */

/**
 * @typedef Response
 * @property {[integer]} code
 */


/**
 * This function comment is parsed by doctrine
 * sdfkjsldfkj
 * @route POST /users
 * @param {Point.model} point.body.required - the new point
 * @group foo - Operations about user
 * @param {string} email.query.required - username or email
 * @param {string} password.query.required - user's password.
 * @param {enum} status.query.required - Status values that need to be considered for filter - eg: available,pending
 * @operationId retrieveFooInfo
 * @produces application/json application/xml
 * @consumes application/json application/xml
 * @returns {Response.model} 200 - An array of user info
 * @returns {Product.model}  default - Unexpected error
 * @returns {Array.<Point>} Point - Some description for point
 * @headers {integer} 200.X-Rate-Limit - calls per hour allowed by the user
 * @headers {string} 200.X-Expires-After -  date in UTC when token expires
 * @security JWT
 */

有没有办法在不同的文件中分离模型?就像我可以将它导入我的路线一样。我想避免使用模型来填充我的路线以进行大摇大摆的定义。

【问题讨论】:

    标签: node.js express swagger


    【解决方案1】:

    在expressSwagger options 中,您可以定义多个位置,从中读取文档:

    (...)
    files: ['./routes/**/*.js', './yourModelPath/*.js'] //Path to the API handle folder
    

    然后您可以引用在另一个文件中定义的模型,如示例中的 Product 引用 Point,它可能在其他地方定义:

    文件 A:

     /**
     * @typedef Product
     * @property {integer} id
     * @property {string} name.required - Some description for product
     * @property {Array.<Point>} Point
     */
    

    文件 B:

    /**
     * @typedef Point
     * @property {integer} x.required
     * @property {integer} y.required - Some description for point - eg: 1234
     * @property {string} color
     * @property {enum} status - Status values that need to be considered for filter - eg: available,pending
     */
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-06
      • 2020-03-25
      • 1970-01-01
      • 2017-02-19
      • 2021-11-08
      • 2016-11-09
      • 1970-01-01
      • 2022-01-04
      相关资源
      最近更新 更多