Web API çözümleyicilerini kullanma

ASP.NET Core 2.2 ve sonrası, web API projeleriyle kullanılmak üzere tasarlanmış bir MVC çözümleyicileri paketi sağlar. Çözümleyiciler ile ek açıklamalı denetleyicilerle çalışırken ApiControllerAttribute web API'si kuralları üzerinde çalışır.

Çözümleyiciler paketi, aşağıdakiler için herhangi bir denetleyici eylemi hakkında size bilgi sağlar:

  • Belirlenemeyen bir durum kodu döndürür.
  • Belirlenemeyen bir başarı sonucu döndürür.
  • Döndürülecek bir durum kodunu belgeler.
  • Açık model doğrulama denetimi içerir.

Çözümleyici paketine başvuru

3.0 veya ASP.NET Core 3.0 veya sonraki bir sonraki bir .NET Core SDK. Projenize çözümleyiciyi etkinleştirmek için proje IncludeOpenAPIAnalyzers dosyasına özelliğini dahil etmek için:

<PropertyGroup>
 <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>

Paket yüklemesi

Microsoft.AspNetCore.Mvc.Api.Analyzers NuGet yaklaşımlardan birini kullanarak yükleyin:

Paket Yöneticisi Konsolu penceresinden:

  • Diğer Yönetim > Konsolu'Windows > Paket Yöneticisi gidin.

  • ApiConventions.csproj dosyasının mevcut olduğu dizine gidin.

  • Aşağıdaki komutu yürütün:

    Install-Package Microsoft.AspNetCore.Mvc.Api.Analyzers
    

Web API'si kuralları için çözümleyiciler

OpenAPI belgeleri, bir eylemin geri dönebilirsiniz durum kodlarını ve yanıt türlerini içerir. MVC ASP.NET Core de, ve gibi ProducesResponseTypeAttribute ProducesAttribute öznitelikler bir eylemi belgeye belgelek için kullanılır. Swagger/openapı ile web apı 'si belgelerini ASP.NET Core , web API'nizi belgeleye kadar daha ayrıntılı bir şekilde ele alınmaktadır.

Pakette çözümleyicilerden biri, ile açıklama ekleyen denetleyicileri inceler ve yanıtlarını ApiControllerAttribute tamamen belgeleyeni eylemleri tanımlar. Aşağıdaki örneği inceleyin:

// GET api/contacts/{guid}
[HttpGet("{id}", Name = "GetById")]
[ProducesResponseType(typeof(Contact), StatusCodes.Status200OK)]
public IActionResult Get(string id)
{
    var contact = _contacts.Get(id);

    if (contact == null)
    {
        return NotFound();
    }

    return Ok(contact);
}

Yukarıdaki eylem HTTP 200 başarı dönüş türünü belgelese de HTTP 404 hata durumu kodunu belgelemektedir. Çözümleyici HTTP 404 durum kodu için eksik belgeleri bir uyarı olarak raporlar. Sorunu düzeltme seçeneği sağlanır.

bir uyarı rapor eden çözümleyici

Ek kaynaklar