Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu konuda, ASP.NET Web API'sini yapılandırma açıklanmaktadır.
- Yapılandırma Ayarları
- web API'sini ASP.NET Barındırma ile yapılandırma
- OWIN Kendi Kendine Barındırma ile Web API'sini Yapılandırma
- Genel Web API Hizmetleri
- Per-Controller Yapılandırması
Yapılandırma Ayarları
Web API yapılandırma ayarları HttpConfiguration sınıfında tanımlanır.
| Üye | Açıklama |
|---|---|
| DependencyResolver | Denetleyiciler için bağımlılık eklemeyi etkinleştirir. Bkz. Web API Bağımlılık Çözümleyicisi'ni kullanma. |
| Filtreler | Eylem filtreleri. |
| Biçimlendiriciler | Medya türü biçimlendiriciler. |
| IncludeErrorDetailPolicy | Sunucunun HTTP yanıt iletilerine özel durum iletileri ve yığın izlemeleri gibi hata ayrıntılarını ekleyip eklemeyeceğini belirtir. Bkz IncludeErrorDetailPolicy. |
| Başlatıcı İşlev | HttpConfiguration'ın son başlatmasını gerçekleştiren bir işlev. |
| MessageHandlers | HTTP ileti işleyicileri. |
| ParameterBindingRules | Denetleyici eylemlerinde parametreleri bağlamaya yönelik kurallar koleksiyonu. |
| Özellikleri | Genel bir özellik çantası. |
| Rotalar | Rotaların toplamı. Bkz . ASP.NET Web API'sinde yönlendirme. |
| Hizmetler | Hizmet koleksiyonu. Bkz. Hizmetler. |
Önkoşullar
Visual Studio 2017 Community, Professional veya Enterprise sürümü.
web API'sini ASP.NET Barındırma ile yapılandırma
ASP.NET bir uygulamada, Application_Start yönteminde GlobalConfiguration.Configure komutunu çağırarak Web API'sini yapılandırın. Configure yöntemi, HttpConfiguration türünde tek bir parametreye sahip bir temsilci alır. Temsilci içinde tüm yapılandırmanızı gerçekleştirin.
Anonim temsilci kullanan bir örnek aşağıda verilmiştir:
using System.Web.Http;
namespace WebApplication1
{
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(config =>
{
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
});
}
}
}
Visual Studio 2017'de, "ASP.NET Web Uygulaması" proje şablonu, Yeni ASP.NET Projesi iletişim kutusunda "Web API'sini" seçerseniz yapılandırma kodunu otomatik olarak ayarlar.
Proje şablonu, App_Start klasörünün içinde WebApiConfig.cs adlı bir dosya oluşturur. Bu kod dosyası, Web API yapılandırma kodunuzu yerleştirmeniz gereken temsilciyi tanımlar.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace WebApplication1
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// TODO: Add any additional configuration code.
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
Proje şablonu ayrıca Application_Start içinde delegeyi çağıran kodu ekler.
public class WebApiApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
GlobalConfiguration.Configure(WebApiConfig.Register);
}
}
Web API'sini OWIN Self-Hosting ile yapılandırma
OWIN ile kendi kendine barındırma yapıyorsanız yeni bir HttpConfiguration örneği oluşturun. Bu örnekte herhangi bir yapılandırma gerçekleştirin ve ardından örneği Owin.UseWebApi uzantısı yöntemine geçirin.
public class Startup
{
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
appBuilder.UseWebApi(config);
}
}
OWIN'i kullanarak ASP.NET Web API 2'yi Self-Host etme öğreticisi tüm adımları gösterir.
Genel Web API Hizmetleri
HttpConfiguration.Services koleksiyonu, Web API'sinin denetleyici seçimi ve içerik anlaşması gibi çeşitli görevleri gerçekleştirmek için kullandığı bir dizi genel hizmet içerir.
Uyarı
Hizmetler koleksiyonu, hizmet bulma veya bağımlılık ekleme için genel amaçlı bir mekanizma değildir. Yalnızca Web API çerçevesi tarafından bilinen hizmet türlerini depolar.
Hizmetler koleksiyonu varsayılan bir hizmet kümesiyle başlatılır ve kendi özel uygulamalarınızı sağlayabilirsiniz. Bazı hizmetler birden çok örneği desteklerken, bazılarının tek bir örneği olabilir. Ancak, denetleyici düzeyinde de işlevler sağlayabilirsiniz; bkz. Per-Controller Configuration.
Single-Instance Hizmetleri
| Service | Açıklama |
|---|---|
| IActionValueBinder | Bir parametre için bağlama alır. |
| IApiExplorer | Uygulama tarafından kullanıma sunulan API'lerin açıklamalarını alır. Bkz. Web API'si için Yardım Sayfası Oluşturma. |
| IAssembliesResolver | Uygulama için derlemelerin listesini alır. Bkz . Yönlendirme ve Eylem Seçimi. |
| IBodyModelValidator | İstek gövdesinden medya türü biçimlendirici tarafından okunan bir modeli doğrular. |
| IContentNegotiator | İçerik anlaşması gerçekleştirir. |
| IDocumentationProvider | API'ler için belgeler sağlar. Varsayılan değer null'tır. Bkz. Web API'si için Yardım Sayfası Oluşturma. |
| IHostBufferPolicySelector | Konağın HTTP ileti varlık gövdelerini arabelleğe alıp almaması gerektiğini gösterir. |
| IHttpActionInvoker | Bir denetleyici eylemi çağırır. Bkz . Yönlendirme ve Eylem Seçimi. |
| IHttpActionSelector | Bir denetleyici eylemi seçer. Bkz . Yönlendirme ve Eylem Seçimi. |
| IHttpControllerActivator | Denetleyiciyi etkinleştirir. Bkz . Yönlendirme ve Eylem Seçimi. |
| IHttpControllerSelector | Bir denetleyici seçer. Bkz . Yönlendirme ve Eylem Seçimi. |
| IHttpControllerTypeResolver | Uygulamadaki Web API denetleyicisi türlerinin listesini sağlar. Bkz . Yönlendirme ve Eylem Seçimi. |
| ITraceManager | İzleme çerçevesini başlatır. ASP.NET Web API'de İzleme'ye bakın. |
| ITraceWriter | bir izleme yazıcısı sağlar. Varsayılan değer, hiçbir işlem yapmayan bir izleme yazıcıdır. Bkz ASP.NET Web API'de İzleme. |
| IModelValidatorCache | Model doğrulayıcılarının önbelleğini sağlar. |
Multiple-Instance Hizmetleri
| Service | Açıklama |
|---|---|
| Ifilterprovider | Denetleyici eylemi için filtrelerin listesini döndürür. |
| ModelBinderProvider | Belirli bir tür için model bağlayıcısı döndürür. |
| ModelMetadataProvider | Model için meta veriler sağlar. |
| ModelValidatorProvider | Bir model için doğrulayıcı sağlar. |
| Valueproviderfactory | Bir değer sağlayıcısı oluşturur. Daha fazla bilgi için Mike Stall'ın WebAPI'de özel değer sağlayıcısı oluşturma blog gönderisine bakın |
Çok örnekli bir hizmete özel bir uygulama eklemek için Hizmetler koleksiyonunda Ekle veya Yerleştir çağrısını yapın.
config.Services.Add(typeof(IFilterProvider), new MyFilterProvider());
Tek örnekli bir hizmeti özel bir uygulamayla değiştirmek için Hizmetler koleksiyonunda Değiştir'i çağırın:
config.Services.Replace(typeof(ITraceWriter), new MyTraceWriter());
Per-Controller Yapılandırması
Aşağıdaki ayarları denetleyici başına temel alarak geçersiz kılabilirsiniz:
- Medya türü biçimlendiriciler
- Parametre bağlama kuralları
- Hizmetler
Bunu yapmak için IControllerConfiguration arabirimini uygulayan özel bir öznitelik tanımlayın. Ardından özniteliğini denetleyiciye uygulayın.
Aşağıdaki örnek, varsayılan medya türü biçimlendiricileri özel bir biçimlendirici ile değiştirir.
using System;
using System.Web.Http;
using System.Web.Http.Controllers;
namespace WebApplication1.Controllers
{
public class UseMyFormatterAttribute : Attribute, IControllerConfiguration
{
public void Initialize(HttpControllerSettings settings,
HttpControllerDescriptor descriptor)
{
// Clear the formatters list.
settings.Formatters.Clear();
// Add a custom media-type formatter.
settings.Formatters.Add(new MyFormatter());
}
}
[UseMyFormatter]
public class ValuesController : ApiController
{
// Controller methods not shown...
}
}
IControllerConfiguration.Initialize yöntemi iki parametre alır:
- HttpControllerSettings nesnesi
- HttpControllerDescriptor nesnesi
HttpControllerDescriptor, bilgilendirici amaçlarla inceleyebileceğiniz (örneğin, iki denetleyiciyi ayırt etmek için) denetleyicinin açıklamasını içerir.
Denetleyiciyi yapılandırmak için HttpControllerSettings nesnesini kullanın. Bu nesne, denetleyici başına geçersiz kılabileceğiniz yapılandırma parametrelerinin alt kümesini içerir. Değiştirmediğiniz tüm ayarlar varsayılan olarak genel HttpConfiguration nesnesine dönüşür.