2017-02-06 2 views
1

私はオンラインで狩猟をいくつか行っており、スワッガードッグでenumタグを使用してフィールドの可能な値のリストを指定する方法を理解できました。しかし、私の現在のAPIでは、代わりに潜在的なフィールドのリストを持ち、それぞれが文字列値を持っている必要があります。スワッガーでEnummerateフィールド名

より正確には、リクエスト本体にJSONを送信するPOSTリクエストがあります。この要求の一部として、ユーザーは単一のIDフィールドを送信する必要があります。ただし、IDフィールドのタイプを複数受け入れることができます。だから、要求はこのようなものになります。

{name:"name", product:"product", [FirstIdType, SecondIdType, ThirdIdType]:"ID Value"}

をだから私は、ユーザーが名、製品、およびFirstIdType、SecondIdType、またはThirdIdTypeのいずれかを持っているJSONを提出する必要があります。厳密に言えば、要求には3つのIDタイプのうちの1つだけを持つ必要がありますが、それがスガーガードでは不可能かどうかは気にしません。フィールドの記述にそれを書いても問題ありません。

もう1つの制約は、私が実際にデザインを変更できないことです。アプリはすでにこのデザインを使用して構築されており、それを変更することは自分の手にないものです。つまり、IDタイプの配列を作成し、その中から1つだけを選択することはできません。

ここに私のスガーガー・ドッグの関連ビットがあります。変更が必要な領域はIDフィールドです。それをどのように進めるかについての考えや指導は本当に感謝しています。

definitions: 
    request_post: 
    description: (post) request schema 
    properties: 
    name: 
     type: string 
    product: 
     type: string 
    Id: 
     type: string 

答えて

1

省略可能なフィールドをパスに指定する代わりに、必要なフィールドにラベルを付けて、デフォルトで残りの部分を変更することができます。

http://swagger.io/specification/#parameterObject

必要なブールこのパラメータが必須であるかどうかを決定します。 パラメータが "path"にある場合、このプロパティは必須で、その値は でなければなりません。さもなければ、特性は含まれてもよく、デフォルトの 値はfalseです。

関連する問題