1

swashbuckle 5.x と swashbuckle-Odata を使用して、swagger を Web API/OData プロジェクトに統合しました。http://root_url/swaggerに移動すると、利用可能なすべての API ドキュメントが 1 つの大きなリストに表示されます。すべてが完全に正常に機能しますが、別のリストに表示する必要があるOdata コントローラーと API のリストを提供しました。これは、swagger 用のカスタム index.html を作成し、swaggerconfig.cs のように挿入する必要があることを知っています。

c.CustomAsset("index", thisAssembly, "SwaggerUI_Config.SwaggerExtensions.index.html");

別のHTMLリストを作成して結果を達成できるように、swaggerドキュメントを分離する方法についてインターネットで調査してきましたが、今のところうまくいきません。誰かが似たようなことをしましたか?どこから始める必要があるか、いくつかの提案や指針を教えてください。

私は、swagger ドキュメントで次の構造を達成しようとしています。

+ Custom API list
  +API Controller #1
   > GET API
   > POST API
   > PUT API
   > DELETE API
  +API Controller #2
   > GET API
   > POST API
   > PUT API
   > DELETE API

+ All available API(s)
  +API Controller #1
   > GET API
   > POST API
   > PUT API
   > DELETE API
  +API Controller #2
   > GET API
   > POST API
   > PUT API
   > DELETE API
  +API Controller #3
   > GET API
   > POST API
   > PUT API
   > DELETE API
4

2 に答える 2

1

要件を誤解している可能性がありますが、SwaggerConfig.cs の呼び出しでGroupActionsByメソッドを使用してアクションをグループ化できるはずです。EnableSwagger

c.GroupActionsBy(apiDesc =>
{
    string controllerName = apiDesc.ActionDescriptor.ControllerDescriptor.ControllerName;
    string method = apiDesc.ActionDescriptor.SupportedHttpMethods.First().Method;

    return string.Format("{0} {1} API", controllerName, method);
}
于 2016-04-13T11:51:36.450 に答える
0

Swagger が提供するタグ属性で @Api アノテーションを使用することをお勧めします。Swagger UI ダッシュボードで API を自由に整理できます。例えば

@Path("apiController1")
@Api(value = "/apiController1", tags = "API CONTROLLER 1")
@Produces({
        MediaType.APPLICATION_JSON
})
public class APIController1 {

    @GET
    @Path("fooGet")
    public final String fooGet() {
        return "Hello, World";
    }
}

他のコントローラーで。

@Path("apiController2")
@Api(value = "/apiController2", tags = {
        "API CONTROLLER 2", "DEFAULT"
})
@Produces({
        MediaType.APPLICATION_JSON
})
public class APIController2 {

    @GET
    @Path("fooGet2")
    public final String fooGet2() {
        return "Hello, World";
    }
}

Swagger UI ダッシュボードは次のようになります。 ここに画像の説明を入力

于 2016-04-04T19:01:41.033 に答える