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.

IT alanında 16 sene önce donanım ile başlayan tecrübem, network ve sonrasında iş analizi, yazılım geliştirme ve proje yöneticiliği alanlarında devam etmiştir. Endüstriyel yazılımlar, sahadan veri toplama ve analizleri, otomatik etiketleme ve barkod sistemleri, otomatik tartım ve robotik konularında tecrübe sahibiyim. Sanayi 4.0 kapsamında imalat sanayinin dijital dönüşümünde çok fazla projenin hayata geçmesini sağladım. Open Source projelerle uzun süre ilgilendim, analiz ve implementasyonu konularında tecrübe edindim. Bunlar dışında hobi amacıyla başlasam da sonradan ürüne dönüşen, geliştirme kartları ile farklı çalışmalarım olmuştur. Raspberry Pi üzerinde yaptığım donanımsal ve yazılımsal işler ile çok farklı ürünler ortaya çıkartarak tecrübe edindim.

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>