2016-07-17 14 views
1

C#Azure WebサービスAPIWebAPIコントローラメソッドがスワッガーに表示されない

私は、モバイルアプリケーションを使用して接続しているWebサービスを作成しました。私はコントローラのコンテナにデフォルトのCRUDコントローラを作成しました。これらのメソッドはすべてスワッガーで表示され、うまく動作します。

コントローラーにCRUDで扱われていないタスクを実行するための新しいメソッドを追加しましたが、これはスガッガーでは表示されません。例:

public async Task<IHttpActionResult> test(tblProfileList test) 
    { 
     // just testing to see if this method shows in swagger 
     tblProfileList ProfileList = await db.tblProfileLists.FindAsync("10"); 
     return NotFound(); // yes, 10 will never be found but that's not the point of this test 
    } 

コントローラー内の既存のCRUDメソッドを変更しても、スガーガーから削除されます。これは、いくつかの並べ替えのマッピングの問題のように思えるが、方法がWebApiConfig.cs以外で登録されている場合、私は見ることができない。

public static void Register(HttpConfiguration config) 
    { 
     // Web API configuration and services 

     // Web API routes 
     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{id}", 
      defaults: new { id = RouteParameter.Optional } 
     ); 
    } 

なぜ私はメソッドの名前を変更したり、新しいを追加することはできません。既存のコントローラのメソッド?または、私はどのようにしてメソッドを追加し、それを誇張して表示することができますか?

+0

新しいメソッドを簡単に追加できるはずですが、これ以上の情報なしでは答えにくいです。 定義したルートとその他の方法を教えてください。 –

答えて

0

変更GetTest(へのメソッドの名前):

public async Task<IHttpActionResult> GetTest(tblProfileList test) 
    { 
     // just testing to see if this method shows in swagger 
     tblProfileList ProfileList = await db.tblProfileLists.FindAsync("10"); 
     return NotFound(); // yes, 10 will never be found but that's not the point of this test 
    } 
0

は、メソッドに[ルート]属性を追加します。 また、コントローラー名の後に実際に.....コントローラが付いていることを確認してください。

関連する問題