5

ASP.NET 4 Web API ヘルプ ページ パッケージを nuget 経由で Web Api プロジェクトにインストールしました。何らかの理由で、すべての API エンドポイントが表示されません。XML を使用するように設定されたドキュメントがあります。なぜこれが起こっているのかわからないので、助けていただければ幸いです。

これがコントローラーの例です

    public class ProductController : BaseController
    {
        // GET api/Product/Get/5/43324
        [AcceptVerbs("GET")]
        public ApiProduct Get(int id, [FromUri]int productId)
        {
             //// logic
        }
   }

ルート

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

ありがとう

4

4 に答える 4

5

ここでの問題は、Web API にはアクションがなく、メソッドが動詞と引数に直接マップされていることです。ルートをこれに更新すると、問題が修正され、すべてのルートが表示されます。

config.Routes.MapHttpRoute(
                name: "apsi-info",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
于 2013-06-28T20:13:58.343 に答える
0

HTTP メソッドがエンドポイントとして使用できない、または自動生成されたヘルプに表示されない別の理由:

関数は である場合privateとそうでない場合がありpublicます。


表示されます:

[HttpGet]
[Route("api/projects")]
public IHttpActionResult GetCount()
{
    return Ok(db.Projects.Count());
}

表示されません:

[HttpGet]
[Route("api/projects")]
private IHttpActionResult GetCount()
{
    return Ok(db.Projects.Count());
}
于 2018-04-18T22:47:02.893 に答える