ASP.NET Web API adalah kerangka kerja untuk mempermudah pembuatan layanan berbasis HTTP yang dapat melayani berbagai jenis klien termasuk peramban (browser), maupun piranti bergerak (handphone, tablet). ASP.NET Web API merupakan platform yang ideal untuk membuat aplikasi RESTful di atas kerangka kerja .NET.

ASP.NET Web API memudahkan pembuatan aplikasi Ajax karena semua layanan dapat dengan mudah dibuat dan diuji. Sebelum adanya Web API, biasanya aplikasi Ajax mengkonsumsi Web Services (*.asmx) atau layanan WCF atau bahkan generic handler (*.ashx) pada platform ASP.NET Web Forms. Untuk ASP.NET MVC, biasanya menggunakan JsonResult untuk menyediakan layanan yang dibutuhkan. Dengan adanya ASP.NET Web API, semua layanan yang mengembalikan JSON / XML dapat dibuat lebih sederhana dan lebih baik. ASP.NET Web API dapat digunakan baik untuk ASP.NET Web Forms atau ASP.NET MVC.

Fitur-Fitur ASP.NET Web API

ASP.NET Web API memiliki fitur-fitur sebagai berikut:

  • Model pemprograman HTTP moderen: Akses dan manupulasi permintaan dan tanggapan HTTP secara langsung pada Web API menggunakan model obyek yang baru dan strong-type.
  • Dukungan penuh terhadap rute (routes): Web API sekarang mendukung penuh kemampuan rute yang menjadi bagian dari Web stack, termasuk parameter rute dan batasan-batasan (constrains). Tidak dibutuhkan lagi atribut [HttpPost] pada class dan method.
  • Content negotiation: klien dan server dapat bekerja bersama menterjemahkan format yang tepat data yang diterima dari sebuah API. Format bawaan yang didukung adalah XML, JSON dan format Form URL-encoded, dan dapat dikembangkan dengan menambahkan format yang didefinisikan sendiri. Model binding dan validasi memungkinkan untuk mengurai data dengan mudah dari berbagai permintaan HTTP diterjemahkan menjadi obyek .NET.
  • Saringan (Filter): Web API telah mendukung penyaringan termasuk penyaringan yang telah dikenal seperti attribute [Authorize]. Dapat juga membuat penyaring sendiri berdasarkan kebutuhan.
  • Perangkai Query. Dengan membuat nilai kembalian sebagai IQueryable<T>, maka Web API akan mendukung query melalui konvensi URL OData.
  • Peningkatan Inversion of Control (IoC) melalui DependencyResolver. Web API kini menggunakan pola service locator yang diterapkan oleh MVC's dependency resolver untuk memperoleh instance untuk fasilitas-fasilitas yang berbeda.
  • Konfigurasi berbasis kode: Konfigurasi Web API dilakukan didalam kode, membuat file config lebih bersih.
  • Self-host: Web API dapat di-host dalam proses dirinya sendiri sebagai tambahan dari IIS.