如何在Swagger Open API 3.0规范的定义中提供电子邮件格式?

时间:2020-07-31 11:57:30

标签: java node.js api swagger openapi

在庞大的Open API文档中,我给出了如下的对象定义:

"definitions": {
  "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
     
          "firstName": {
            "type": "string"
          },
        
          "email": {
            "type": "string"
          },
          "shipDate": {
            "type": "string",
           "format": "date-time"
          },
         "status": {
          "type": "string",
          "description": "Order Status",
        "enum": [
          "placed",
          "approved",
          "delivered"
        ]
      }
}

我找不到要修改的电子邮件地址格式,例如:

 "email": {
        "type": "string",
        "format" : "####"
      }

我经历了官方Doc,他们说:

即使使用“电子邮件”,“ uuid”等格式,也可以使用 本规范未定义。不附带的类型 格式属性遵循JSON模式中的类型定义。

我正在努力实现这一目标,任何提示我该如何实现?

1 个答案:

答案 0 :(得分:0)

您可以使用正则表达式pattern来限制可接受的电子邮件域。例如,如果电子邮件必须以.io结尾,则可以使用\.[Ii][Oo]$模式:

"email": {
  "type": "string",
  "format": "email",
  "pattern": "\\.[Ii][Oo]$"
}

请注意,字符串中的\字符会以\\的形式转义。