.NET Core 7 ve Dapr ile Zamanlanmış API Çağrıları
Mikro hizmetlerin oluşturulması ve yönetilmesi sürekli gelişen bir alan olup, burada devreye Dapr giriyor. Dapr, bulut veya kenar…

dapr ile .net core
.NET Core 7 ve Dapr ile Zamanlanmış API Çağrıları
Mikro hizmetlerin oluşturulması ve yönetilmesi sürekli gelişen bir alan olup, burada devreye Dapr giriyor. Dapr, bulut veya kenar durumlarında çalışma yeteneğine sahip bir “portable, event-driven, runtime” sunan bir açık kaynaklı proje. Bu makalede, .NET Core 7 ve Dapr’ı kullanarak belirli aralıklarla API çağrılarının nasıl yapılabileceğini inceleyeceğiz.
Dapr’ı Kurma
İlk adımımız tabi ki de Dapr’ı sistemimize kurmak olacaktır. Makalenin konusu kurulum olmadığı için burada buna yer vermeyeceğim. Bunu Dapr’ın resmi dökümantasyonundaki kurulum rehberini takip ederek yapabilirsiniz: https://docs.dapr.io/getting-started/
Uygulamanın Başlatılması
Dapr'ın sisteminiz de kurulu olup olmadığını kontrol etmek için de terminal üzerinden dapr yazıp enter dediğiniz de aşağıdaki gibi bir ekran görmeniz gerekecektir.

terminal dapr 'enter’ sonucu
Dapr’ın sistemimiz de kurulu olduğuna emin olduktan sonra ister yeni uygulama olsun ister daha önce çalıştığımız bir uygulama olsun dapr ile çalıştırmak için aşağıdaki kodu terminal üzerinden çalıştırmamız gerekmektedir. Tabi uygulama dizinin de çalıştırmamız gerektiğini de unutmamamız gerekmektedir.
Dapr ile uygulamamızı başlatabilmek için terminali açarak aşağıdaki kodu yazmamız gerekecektir.
dapr run --app-id UygulamaAdiniz --app-port 5000 -- dotnet run
Yukarıda ki kod satırı ile belirtilen parametreleri kısaca şu şekil de açıklayabiliriz;
— app-id => uygulama kimliği
— app-port => uygulamanın çalışacağı port numarası
Event Kaynağı Oluşturma
Dapr, event tabanlı bir çözüm olduğundan, belirli aralıklarla çalıştırılacak bir uygulama için bir event kaynağına ihtiyacımız var. Bu, Dapr’ın desteklediği çeşitli event kaynaklarından biri olabilir. Biz belirli aralıklarla çalışacak bir sistem geliştirmek istediğimizden spec tipini cron olarak oluşturacağız. Örnek timer.yaml dosyası aşağıdaki gibi olacaktır:
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: timer
namespace: default
spec:
type: bindings.cron
metadata:
- name: schedule
value: "*/1 * * * *"
Yukarıdaki yaml dosyası ile her 1dk’da metadata altında tanımlı olan name alanındaki isme bir post işlemi yapılacaktır. Burada dikkat edilmesi gereken en önemli konu controller dosyamız da post isteklerini kabul edecek ve adı timer olan bir route değerinin tanımlanmış olması gerekmektedir.
API Endpoint Oluşturma
Yaml dosyamızın içinde tanımladığımız ve Dapr’ın çağrılarını işleyeceğimiz endpoint’i oluşturarak işlemimizi tamamlıyoruz. Örnek endpoit aşağıdaki gibi olabilir;
[HttpPost("/timer")]
public IActionResult RunJob()
{
// Yapılmasını istediğimiz işlemleri yapıyoruz
return Ok();
}
Uygulamanın Çalıştırılması
Son olarak terminal üzerinden çalıştıracağımız bir kod satırı ile sistemin çalışmasını sağlayacağız.
dapr run --app-id UygulamaAdiniz --app-port 5000 --components-path Components -- dotnet run
İlk yazdığımız örnekden farklı olarak burada yer alan — components-path ile .net core uygulamamız içinde oluşturduğumuz “Components” klasörünün yerini belirtiyoruz. Dapr default ayarlarında kullanılacak olan yaml dosyalarını bu klasör içinde arar.
Artık Dapr, belirlediğiniz her dakika API endpointinize bir POST isteği gönderecektir. Bu özellik, genellikle belirli aralıklarla çalışması gereken bir işi veya düzenli olarak bir API’yi çağırmanız gereken senaryolar için kullanışlıdır.
Bu basit örnekle, .NET Core 7 ve Dapr ile event tabanlı uygulamalar oluşturmanın ne kadar kolay olduğunu gördük. Zamanlamalı API çağrıları gibi daha karmaşık senaryolar için Dapr’ın sağladığı bu çözümleri özelleştirebilir ve genişletebiliriz. Mikro hizmetlerinizi daha da geliştirmek ve etkinleştirmek için Dapr’ın sağladığı diğer özelliklere de göz atmayı unutmayın.
Dapr resmi sitesi için https://dapr.io/ adresini ziyaret edebilir dökümanlara ulaşmak için de https://docs.dapr.io/ adresini ziyaret edebilirsiniz.
Bir sonraki yazım da Kafka topiclerine subscribe olup mesajları okumayı, deadLetterTopic mantığını ve resiliency (dayanıklılık) örneğini yazacağım.
Sabırla okuduğunuz için teşekkür ederim…
Kısa bir düzenleme ekleme;
Github projesine buradan erişebilirsiniz
메타데이터
- post_id
- c5a8db112d5b
- slug
- net-core-7-ve-dapr-ile-zamanlanmış-api-çağrıları-c5a8db112d5b
- url
- https://medium.com/@omurucum/net-core-7-ve-dapr-ile-zamanlanm%C4%B1%C5%9F-api-%C3%A7a%C4%9Fr%C4%B1lar%C4%B1-c5a8db112d5b
- canonical_url
- https://medium.com/@omurucum/net-core-7-ve-dapr-ile-zamanlanm%C4%B1%C5%9F-api-%C3%A7a%C4%9Fr%C4%B1lar%C4%B1-c5a8db112d5b
- author_url
- https://medium.com/@omurucum
- status
- ok
- fetched_at
- 2026-06-29 01:02:39