Menggunakan OWIN untuk Self-Host ASP.NET Web API
Tutorial ini menunjukkan cara menghosting ASP.NET Web API dalam aplikasi konsol, menggunakan OWIN untuk menghost sendiri kerangka kerja WEB API.
Open Web Interface for .NET (OWIN) mendefinisikan abstraksi antara server web .NET dan aplikasi web. OWIN memisahkan aplikasi web dari server, yang membuat OWIN ideal untuk menghosting sendiri aplikasi web dalam proses Anda sendiri, di luar IIS.
Versi perangkat lunak yang digunakan dalam tutorial
- Visual Studio 2017
- WEB API 5.2.7
Catatan
Anda dapat menemukan kode sumber lengkap untuk tutorial ini di github.com/aspnet/samples.
Membuat aplikasi konsol
Pada menu File , Baru, lalu pilih Proyek. Dari Terinstal, di bawah Visual C#, pilih Desktop Windows lalu pilih Aplikasi Konsol (.Net Framework). Beri nama proyek "OwinSelfhostSample" dan pilih OK.
Menambahkan paket Web API dan OWIN
Dari menu Alat , pilih Manajer Paket NuGet, lalu pilih Konsol Manajer Paket. Di jendela Konsol Manajer Paket, masukkan perintah berikut:
Install-Package Microsoft.AspNet.WebApi.OwinSelfHost
Ini akan menginstal paket selfhost WebAPI OWIN dan semua paket OWIN yang diperlukan.
Mengonfigurasi API Web untuk host mandiri
Di Penjelajah Solusi, klik kanan proyek dan pilih Tambahkan / Kelas untuk menambahkan kelas baru. Beri nama kelas Startup
.
Ganti semua kode boilerplate dalam file ini dengan yang berikut:
using Owin;
using System.Web.Http;
namespace OwinSelfhostSample
{
public class Startup
{
// This code configures Web API. The Startup class is specified as a type
// parameter in the WebApp.Start method.
public void Configuration(IAppBuilder appBuilder)
{
// Configure Web API for self-host.
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
}
Menambahkan pengontrol API Web
Selanjutnya, tambahkan kelas pengontrol API Web. Di Penjelajah Solusi, klik kanan proyek dan pilih Tambahkan / Kelas untuk menambahkan kelas baru. Beri nama kelas ValuesController
.
Ganti semua kode boilerplate dalam file ini dengan yang berikut:
using System.Collections.Generic;
using System.Web.Http;
namespace OwinSelfhostSample
{
public class ValuesController : ApiController
{
// GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/values/5
public string Get(int id)
{
return "value";
}
// POST api/values
public void Post([FromBody]string value)
{
}
// PUT api/values/5
public void Put(int id, [FromBody]string value)
{
}
// DELETE api/values/5
public void Delete(int id)
{
}
}
}
Mulai Host OWIN dan buat permintaan dengan HttpClient
Ganti semua kode boilerplate dalam file Program.cs dengan yang berikut:
using Microsoft.Owin.Hosting;
using System;
using System.Net.Http;
namespace OwinSelfhostSample
{
public class Program
{
static void Main()
{
string baseAddress = "http://localhost:9000/";
// Start OWIN host
using (WebApp.Start<Startup>(url: baseAddress))
{
// Create HttpClient and make a request to api/values
HttpClient client = new HttpClient();
var response = client.GetAsync(baseAddress + "api/values").Result;
Console.WriteLine(response);
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
Console.ReadLine();
}
}
}
}
Menjalankan aplikasi
Untuk menjalankan aplikasi, tekan F5 di Visual Studio. Output akan terlihat seperti berikut ini:
StatusCode: 200, ReasonPhrase: 'OK', Version: 1.1, Content: System.Net.Http.StreamContent, Headers:
{
Date: Tue, 09 Jul 2013 18:10:15 GMT
Server: Microsoft-HTTPAPI/2.0
Content-Length: 19
Content-Type: application/json; charset=utf-8
}
["value1","value2"]
Sumber Daya Tambahan:
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk