の配列であることを闊歩クエリのparamを許可し、私は次のことをサポートするために、クエリのparam station_idを許可する:swagger2(OPENAPI)を使用して、残りのAPIを構築するには、文字列または整数
- station_id = 23(リターン?ステーション23)
- ?station_id = 23,45(戻りステーション23及び45)
- ?station_id = 3:14](戻りステーション14を通る3)
- ?station_id = 100%(%sの行為としてワイルドカードは1001, 10049などのようなものを返す)
:この定義に
parameters:
- name: station_id
in: query
description: filter stations by station_id
required: false
type: array
items:
type: string
闊歩検証をして失敗したとして、前の例のすべてがstation_id = 23を除いて動作しますか?次のメッセージ:?私はstation_id = '23' の検証パスのようなstation_idを引用している場合、私は正しい応答を得ること
{
"message": "Validation errors",
"errors": [
{
"code": "INVALID_REQUEST_PARAMETER",
"errors": [
{
"code": "INVALID_TYPE",
"params": [
"array",
"integer"
],
"message": "Expected type array but found type integer",
"path": [],
"description": "filter stations by station_id"
}
],
"in": "query",
"message": "Invalid parameter (station_id): Value failed JSON Schema validation",
"name": "station_id",
"path": [
"paths",
"/stations",
"get",
"parameters",
"0"
]
}
]
}
ノート。しかし、私は本当に引用符を使用する必要はありません。ユニオンタイプのようなものはこれを解決するのに役立ちますが、私が知る限り、それらはサポートされていません。
私はまた、単一のidの大文字を扱うことができる別のエンドポイント/ステーション/ {id}を持っていますが、上記で指定した方法でフィルタリングしたい他の(非主キー)たとえば、station_latitudeです。
問題を回避するためのアイデア - 多分私はパターン(正規表現)を何とか使うことができますか?スワッガー定義に回避策がない場合は、バリデータを調整またはバイパスする方法がありますか?これはnodejsプロジェクトですswagger-nodeswagger-express-mwのバージョンを0.7.0にアップグレードしました。
AnyOfはOpenAPI v3でサポートされます –