如何在openapi规范中定义一个可以是电子邮件格式或空字符串的属性(swagger)

问题描述 投票:0回答:1

我有一个电子邮件字段,用户将其作为 POST/PUT API 的一部分发送。我想使用 openapi 规范验证电子邮件是否采用正确的电子邮件格式(如果存在)。如果它作为空字符串给出,我不想进行检查。我怎样才能实现这个目标。

我知道如何接受空值

email:
    type: string
    format: email
    nullable: true

但我想接受空字符串,而不是 null。我们可以为此做些什么吗

email:
  type: string
  anyOf:
    format: email
    format: empty
swagger openapi
1个回答
0
投票

从技术上讲,

format
不用于验证目的。这就是 JSON Schema 世界中所谓的
annotation
,OpenAPI 正是基于它。它只是一个信息属性。一些验证器或工具将使用此属性来增强验证结果,但这不是必需的。

在您的情况下,从 JSON 模式验证的角度来看,任何字符串值在技术上都是有效的,包括空字符串。

email:
  type: string
  format: email
  nullable: false
© www.soinside.com 2019 - 2024. All rights reserved.