Open API 3.0 是否支持前端和后端的不同代?

问题描述

任何人都可以帮助我解决以下有关 Open API 3.0 规范的困惑。

假设我想为注册用例指定一个端点。

POST /signup

端点(在前端)应该接受带有以下参数的 requestBody(JSON 格式):

    {
    "email": "user@user.com","password": "blaa","passwordConfirm": "blaa"
    }

端点(在后端)应该返回如下所示的响应:

    {
    "email": "user@user.com","passwordConfirm": "blaa","handle": "username","createdAt": "2021-05-28T12:39:47.802Z"
    }

响应中应该还有两个需要在后端设置的字段(createdAthandle

我的目标是生成应该输出不同代码的前端和后端:

  • 前端:电子邮件、密码、密码确认
  • 后端:电子邮件、密码、密码确认、句柄、createdAt

这是我可以使用 Open API 3.0 指定的内容吗? 规范会是什么样子?

感谢您的帮助。

解决方法

有一个名为 readOnly 的字段,如果它设置为 true 意味着特定参数可以作为响应的一部分发送,但不应作为请求的一部分发送。

您可以查看 specification 中的 Read-Only and Write-Only Properties 部分。

例如,在您的情况下,它看起来像:

    type: object
    properties:
      email:
        type: string
      password:
        type: string
      passwordConfirm:
        type: string
      handle:
        type: string
        readOnly: true
      createdAt:
        type: string
        readOnly: true