Rumah >pembangunan bahagian belakang >C++ >Bagaimana Mengendalikan Kaedah GET Berbilang dalam Pengawal API Web ASP.NET Tunggal?

Bagaimana Mengendalikan Kaedah GET Berbilang dalam Pengawal API Web ASP.NET Tunggal?

Patricia Arquette
Patricia Arquetteasal
2025-01-05 09:43:08386semak imbas

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

Pengawal Tunggal dengan Pelbagai Kaedah GET dalam API Web ASP.NET

Mengatasi ralat berbilang tindakan yang sepadan dengan permintaan boleh dicapai melalui laluan definisi dalam WebApiConfig.

Penyelesaian yang disediakan menyokong untuk menggunakan gabungan laluan untuk menyokong pelbagai Kaedah GET dan kaedah REST standard:

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) });

Untuk menunjukkan ini, pertimbangkan pengawal ujian berikut:

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)
    {
    }
}

Dengan laluan yang ditentukan, pengawal ini boleh mengendalikan permintaan berikut:

GET /Test
GET /Test/1
GET /Test/GetAll
POST /Test
PUT /Test/1
DELETE /Test/1

Penyelesaian ini memastikan bahawa walaupun dengan pelbagai kaedah GET, titik akhir RESTful kekal utuh, memberikan fleksibiliti dan pematuhan kepada HTTP piawaian. Ambil perhatian bahawa jika tindakan GET anda tidak bermula dengan 'Get', anda boleh menambah atribut HttpGet untuk kejelasan.

Atas ialah kandungan terperinci Bagaimana Mengendalikan Kaedah GET Berbilang dalam Pengawal API Web ASP.NET Tunggal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn