ホームページ > バックエンド開発 > C++ > 単一の ASP.NET Web API コントローラーで複数の GET メソッドを処理する方法

単一の ASP.NET Web API コントローラーで複数の GET メソッドを処理する方法

Patricia Arquette
リリース: 2025-01-05 09:43:08
オリジナル
390 人が閲覧しました

How to Handle Multiple GET Methods in a Single ASP.NET Web API Controller?

ASP.NET Web API の複数の GET メソッドを備えた単一のコントローラー

リクエストに一致する複数のアクションのエラーはルートを通じて解決できますWebApiConfig.

で提供されるソリューションでは、ルートの組み合わせを使用してさまざまな GET メソッドをサポートし、標準 REST メソッド:

routes.MapHttpRoute("DefaultApiWithId", "Api/{controller}/{id}", new { id = RouteParameter.Optional }, new { id = @"\d+" });
routes.MapHttpRoute("DefaultApiWithAction", "Api/{controller}/{action}");
routes.MapHttpRoute("DefaultApiGet", "Api/{controller}", new { action = "Get" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Get) });
routes.MapHttpRoute("DefaultApiPost", "Api/{controller}", new { action = "Post" }, new { httpMethod = new HttpMethodConstraint(HttpMethod.Post) });
ログイン後にコピー

これを実証するために、次のテスト コントローラーを検討します:

public class TestController : ApiController
{
    public string Get()
    {
        return string.Empty;
    }

    public string Get(int id)
    {
        return string.Empty;
    }

    public string GetAll()
    {
        return string.Empty;
    }

    [HttpPost]
    public void Post([FromBody] string value)
    {
    }

    [HttpPut]
    public void Put(int id, [FromBody] string value)
    {
    }

    [HttpDelete]
    public void Delete(int id)
    {
    }
}
ログイン後にコピー

指定されたルートを使用すると、このコントローラーは次のリクエストを処理できます:

GET /Test
GET /Test/1
GET /Test/GetAll
POST /Test
PUT /Test/1
DELETE /Test/1
ログイン後にコピー

このソリューションでは、複数の GET メソッドを使用しても、RESTful エンドポイントはそのまま維持され、柔軟性と HTTP 標準への準拠が提供されます。 GET アクションが「Get」で始まらない場合は、わかりやすくするために HttpGet 属性を追加できることに注意してください。

以上が単一の ASP.NET Web API コントローラーで複数の GET メソッドを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート