4

新しい Azure API アプリ (2015 年 3 月 24 日の新しい SDK ビットを使用した Visual Studio 2013 のテンプレート) で遊んでおり、Swagger UI で呼び出しをバージョン # でグループ化したいと考えています。私の場合、現在 URI でバージョン管理しています (REST 純粋主義者はこれを行うなと言うでしょう - ここで「エラーを修正」しようとしないでください)。たとえば、次の呼び出しがある場合があります。

http://example.com/api/Contacts <-- "latest"
http://example.com/api/1/Contacts
http://example.com/api/2/Contacts
http://example.com/api/Contacts{id} <-- "latest"
http://example.com/api/1/Contacts/{id}
http://example.com/api/2/Contacts/{id}

機能的には、これはうまくいきます!(はい、うんざりする方もいらっしゃると思います。申し訳ありませんが、これはあなたの気持ちを傷つけます。) しかし、私の問題は Swagger UI 構成にあります。デフォルトでは、Swagger UI はこれらをコントローラー名 (Contactsこの場合) でグループ化します。SwaggerConfig.csこれを変更できるファイルが表示されます。

// Each operation be assigned one or more tags which are then used by consumers for various reasons.
// For example, the swagger-ui groups operations according to the first tag of each operation.
// By default, this will be controller name but you can use the "GroupActionsBy" option to
// override with any value.
//
//c.GroupActionsBy(apiDesc => apiDesc.HttpMethod.ToString());

私が理解できないのは、これを微調整して、すべての「最新」をグループ化し、次にすべての v1 をグループ化し、次にすべての v2 をグループ化する方法です。

これどうやってするの?バージョン番号の代わりに「最新」(または同等)という単語をパスに追加することが絶対に必要な場合は、それを行うことができますが、そうする必要はありません。

4

1 に答える 1