2016-04-04 8 views
1

swashbuckle 5.xとswashbuckle-Odataを使用してWeb API/ODataプロジェクトにswaggerを統合しました。 http://root_url/swaggerに移動すると、使用可能なすべてのAPIドキュメントが大きなリストに表示されます。すべて正常に動作しますが、のOdataコントローラとAPIのリストが必要です。は別のリストで表示されます。私は、これは私がすることによって行う闊歩用のカスタムのindex.htmlを作成し、swaggerをカスタマイズしてドキュメントを分離する

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

は私が闊歩ドキュメントを分離することができますどのようにインターネット上で研究されているようswaggerconfig.csに注入する必要が何か知っている私ができるように、別のHTMLリストを作成し、私の結果を達成する、これまで運がない。誰かが似たようなことをやったのですか私はあなたに私が始める必要があるいくつかの提案やポインタを教えてください。

私は奇妙なドキュメントで以下の構造を達成しようとしています。

+ 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 

答えて

0

Swaggerによって提供されるタグ属性で@Apiアノテーションを使用することができます。それはあなたのAPIを、あなたの望むように、スムーズなUIダッシュボード上に整理します。 など。

@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"; 
    } 
} 

スワッガーUIダッシュボードは次のようになります。 enter image description here

+0

おかげで、このJavaはありますか?私はswashbuckle-swaggerの@Apiアノテーションを見つけることができませんでした。 ASP.Net Web APIアプリケーションで同様の機能を探しています。 –

+0

はい。それはjava用です。しかし、クイックグーグルは、swashbuckleのためのすごいコアがそのような機能を公開していることを明らかにしている。 https://github.com/domaindrivendev/Swashbuckle/blob/master/Swashbuckle.Core/Swagger/Annotations/SwaggerOperationAttribute.cs –

+0

ここでは、そのブログの使用例を示します。 http://blog.greatrexpectations.com/2015/03/18/custom-operation-names-with-swashbuckle-5-0/ –

1

私はあなたの要件を誤解しているかもしれませんが、あなたがSwaggerConfig.csであなたのEnableSwagger呼び出しでGroupActionsBy方法を使用して、あなたの行動のグループことができるようになります。あなたのコメントについて

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

    return string.Format("{0} {1} API", controllerName, method); 
} 
関連する問題