OPENAPIのスキーマ内の大文字小文字を区別しない文字列パラメータ

frdsprtrdr:

私はこのようなパラメータを使用して、オープンAPIの仕様があります。 

- name: platform
  in: query
  description: "Platform of the application"
  required: true
  schema:
    type: string
    enum:
      - "desktop"
      - "online"

私はURLから「プラットフォーム」のパラメータを取得するとき、それはこのようなことができます:

platform=online or 
platform=ONLINE or 
platform=Online or 
platform=onLine  or ... any other format

私はそれを使用するつもりだときのパラメータのようなすべて小文字である場合は、それが唯一の有効な「オンラインプラットフォームは=」列挙型の値と一致することは明らかに、。

どのように私は、スキーマはケース依存しないようにし、渡されたパラメータのすべてのタイプを理解することができますか?

ヘレン :

列挙型は、大文字と小文字が区別されます。大文字と小文字を区別しないスキーマを持っているために、あなたは正規表現を使用することができますpattern代わりに:

- name: platform
  in: query
  description: 'Platform of the application. Possible values: `desktop` or `online` (case-insensitive)'
  required: true
  schema:
    type: string
    pattern: '^[Dd][Ee][Ss][Kk][Tt][Oo][Pp]|[Oo][Nn][Ll][Ii][Nn][Ee]$'

patternパターンそのものであるとJavaScript正規表現リテラル構文(サポートしていません/abc/i)、を意味しているユーザーが指定することはできませんのようなi(大文字小文字を区別しない検索を)。その結果、あなたはパターンそのものでは大文字と小文字の両方を指定する必要があります。


代替的に、で可能な値を指定するdescriptionよりもむしろにpattern/ enum、およびバックエンドにパラメータ値を検証します。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=338449&siteId=1
おすすめ