Enable [ApiController]

Merhabalar;

Bildiğiniz gibi ApiControllerAttribute HTTP Api geliştirmek için bir takım MVC özelliği sağlar.

Normalde kullanımı onu controllera ekleyerek olur.

[ApiController]
[Route("[testController]")]
public class BookController : Controller
{
    [HttpPost]
    public ActionResult<Production> PostProduction(Produstion production)
    {
        // ....
    }
}

Normal olarak çalışıyor, fakat biz onu her controller içine eklemek zorunda kalmadan ve tüm controllerlar için global olarak etkin olmasını nasıl sağlayabiliriz?

ASP.NET Core 2.1’de tek çözüm onu bir class içerisine koymak ve diğer controllerlar için o class’dan devralmaktı.

ASP.NET Core 2.2 ile bu konuda bir güncelleme yapıldı, [ApiController]
assembly 

[assembly: ApiController]
namespace MyNamespace
{
    public class Startup
    {
        //....
    }
} 

Yukarıda ki kod [ApiController] özelliğini otomatik olarak bu assembly içindeki tüm controllerlara ekler.
Fakat maalesef örnek; IApplicationModelConvetion veya bir filter kullanarak dinamik olarak eklemenin bir solu yok, bunu statik olarak yapmak gerekecek.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>