İçeriğe geç

Laravel’de HTTP Macro Ne İşe Yarar ve Nasıl Kullanılır ?

Projelerimizde çeşitli sebeplerle farklı sistemler ile iletişim halinde olmamız gerekebiliyor. Bir ödeme sistemi, bağımlısı olduğumuz bir API kaynağı, sık sık taramak zorunda olduğumuz bir URL veya bir SOAP adresine sık sık istek göndermemiz gerektiğinde sürekli aynı kodları kopyalayıp ilerlemek doğru bir yazılım geliştirme yöntemi değildir.

Özellikle oturum gerektiren bir istekte bulunmamız gerekiyorsa sürekli header içinde auth bilgisi gönderiyoruz. Bu auth bilgisini eğer basic auth veya JWT token ise sürekli config içinden veya başka bir kaynaktan okuyarak istekte bulunmadan önce header içine eklememiz gerekiyor.

Ayrıca URL ve bilgisini de bir config içinden okuyarak ve hiç doğru bir yöntem olmamasına rağmen sürekli istekte bulunduğumuz satır içinde yazarak kod tekrarı yapmış oluyoruz.

Örneğin aşağıda bir API adresine doğrudan istekte bulunan 2 örneğimiz var. Bu 2 örnekte de site adresi tekrar edilmiş durumda.

Bu şekilde kod tekrarı yapmanın önüne geçmek için Http Macro kullanabiliriz. AppServiceProvider içinde aşağıdaki gibi macro tanımlayabilirsiniz.

Bu tanımlamayı başka bir service provider içinde tanımlayıp onu config/app.php içindeki providers dizisine eklemeniz biraz daha düzenli çalışmanıza yardımcı olur.

Yukarıdaki tanımlamamızda acceptJson() ve asJson() ile giden ve gelen tüm verinin JSON olmasını istediğimizi belirtmiş olduk. Daha sonra withBasicAuth() içinde kullanıcı bilgilerimizi de tanımlayarak tüm isteklerin auth bilgisi içermesini de sağladık. Ardından baseUrl() ile API adresimizi de vererek en temel ihtiyaçlarımızı karşılamış olduk.

Aşağıdaki image_api.php içeriğini ve .env içeriğini de ilgili yerlere ekleyerek test edebiliriz.

.env içeriği

Şimdi RemoteApiController içinde gerekli değişiklikleri aşağıdaki gibi yapalım.

Herhangi bir hata yapmadan bu adıma kadar geldiyseniz sonucun aynı olduğunu görmüş olmalısınız. Http sınıfındaki Macro özelliği ile kodlarımızı bu şekilde kısaltarak kod tekrarının önüne geçebilir ve okunabilirliği arttırabilirsiniz.

Faydalı olması dileğiyle..

Bir sonraki yazıda görüşmek üzere.

Kategori:Genel

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

18 − thirteen =