在 mule 4.4 中实现的 openapi 3.0 不强制执行路径参数

openapi 3.0 implemented in mule 4.4 not enforcing path parameter

我正在使用 open api 3.0。我正在设计一个具有路径参数的端点: 在 mule 4.4

中实现规范
paths:
  
  /comps/{compId}/emps/{empId}:
    get:
      parameters:
      - name: compId
        in: path
        required: true
        schema:
          type: string
          minLength: 1
      - name: empId
        in: path
        required: true
        schema:
          type: string
          minLength: 1

但是,如果我提出以下请求,(请注意 'compId' 是带有 space 的空字符串) 它没有得到验证? 我确信这应该可以在 openapi 中强制执行 not null not empty string ?

http://localhost:8081/v2/comps/ /emps/123

我认为您的期望是不正确的。空字符串 ("") 和包含 space (" ") 的字符串是两种不同的东西。在大多数编程语言中,包含单个 space 的字符串将被视为长度为 1.

的完全有效字符串

如果您想添加验证以避免出现这种情况,您可以对字符串使用 pattern 属性 并声明一个正则表达式来验证有效的字符串。例如:"pattern": "^[A-Za-z0-9]+$".