新しい 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 をグループ化する方法です。
これどうやってするの?バージョン番号の代わりに「最新」(または同等)という単語をパスに追加することが絶対に必要な場合は、それを行うことができますが、そうする必要はありません。