在Swagger文档中实现void

4

我无法想出如何在 node 中实现一个返回响应代码的 swagger(使用 swagger-node-express 项目)函数。

例如,对于此 swagger 路径:

/api/user/create:
x-swagger-router-controller: api
get:
  operationId: userCreate
  parameters:
    - name: username
      in: query
      description: The username of the user.
      required: true
      type: string
    - name: password
      in: query
      description: The password of the user.
      required: true
      type: string
    - name: email
      in: query
      description: The email of the user.
      required: true
      type: string
  responses:
    '200':
      description: OK
    '412':
      description: User already exists

I would like to send a return.

If I try

res.json(200);

或者

res.sendStatus(200);

甚至更多
res.sendStatus();

我遇到了这个错误:响应验证失败:void不允许有值。
如果我发送请求,Swagger编辑器将会出现解析错误。
res.json()

我遇到了一个“无法允许值”的错误。

我感觉已经没什么尝试的选项了,真的需要一些意见。

2个回答

3

最终找出了错误的原因:

响应验证失败:void 不允许有值。

当您在 swagger.yaml 文件中具有以下行时:

responses:
  '200':
    description: OK

Swagger不知道应该发送什么类型的响应。我们需要明确指定响应模式,如下所示,以说明有效的响应类型。

responses:
  200:
    description: Success
    schema:
      title: reset
      properties:
        message:
          type: string

0

我发现,当你按照标准的节点方式编写头部并结束连接时,它可以正常工作。

res.writeHead(code, message);
res.end();

对我来说不起作用。仍然是旧错误:{"message":"响应验证失败:void不允许有值","code":"INVALID_TYPE","failedValidation":true,"path":["paths","/company/{companyName}","post","responses","200"],"originalResponse":"{}"} - Ernst Robert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接