express-jsdoc-swagger _在request.body中使用枚举类型

问题描述

我有一个字符串枚举类型的属性,我需要用swagger进行解释。所以这是我的示例:

/**
 * A client
 * @typedef {object} Client
 * @property {string} uuid.required -  unique id from client
 * @property {string} os.required - os type - enum:mac,windows
 * @property {integer} os_specifications.required - the version of the os
 */
/**
 * POST /api/v1/client/register
 * @summary  register client
 * @tags client
 * @param {Client} request.body.required - client object for registration
 * @return {object} 200 - success response - application/json
 * @return {object} 403 - forbiden
 */
router.post('/register',async (req,res) => {
  try {
    let data = {
      ...req.body,role: 'client',};
    let user = await UsersController.createClient({ ...data });
   
    return res.status(200).json({ user: { ...user } });
  } catch (error) {
    logger.error(error);
    res.status(403).json(error);
  }
});

但是它告诉我这个:

{
  "uuid": "string","os": "mac","os_specifications": 0
}

在官方documentation中,该示例使用以下代码

* @param {string} name.query.required - name param description - enum:type1,type2

为什么这不适用于请求正文参数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)