HTTP Request, API ve Webhook
n8n'in dışa açılan en önemli iki kapısı: HTTP Request ile herhangi bir API'ye konuşmak, Webhook ile dışarıdan gelen olayları yakalamak.
Bu bölümde
HTTP Request ve Webhook, n8n'in dış dünyaya açıldığı iki ana kapıdır: biri konuşmaya gider (siz API'yi çağırırsınız), diğeri gelen olayları yakalar (dışarısı sizi tetikler). Bu bölümde her ikisinin de tüm detaylarını — kimlik doğrulama çeşitlerini, response handling'i, sayfalama ve hata yönetimini, webhook güvenliğini — gerçek örneklerle öğreneceksiniz.
Konular
- HTTP Request node: GET, POST, PUT, DELETE
- Authentication: API Key, Bearer, OAuth2
- Request body: JSON, form-data, query params
- Response handling, pagination
- Webhook trigger: URL üretimi, secret, GET/POST
- Webhook response: senkron vs asenkron
- Test vs Production webhook URL farkları
HTTP Request: GET, POST, PUT, DELETE
HTTP Request node herhangi bir REST API'ye konuşmanızı sağlar. Method seçimi yaptığınız şeye bağlıdır: veri okuma → GET, yeni kayıt → POST, mevcut kaydı güncelleme → PUT/PATCH, silme → DELETE. URL'de expression kullanabilirsiniz ({{ $json.id }} ile dinamik id gönderme). Query Parameters, Headers ve Body sekmeleri ayrı ayrı yönetilir; özellikle Content-Type header'ı (application/json mı, form-data mı) doğru ayarlanmazsa API 415 hatası döner.
Authentication: API Key, Bearer, OAuth2
API'ler kendinizi kanıtlamanızı ister. En sık karşılaştığınız üç yöntem: (1) API Key (Header Auth) — anahtarı sabit bir header'a koyar (örn. X-API-Key), kurulumu en basit; (2) Bearer Token — 'Authorization: Bearer <token>' formatında, çoğu modern API böyle; (3) OAuth2 — kullanıcı adına yetki almak gerektiğinde (Google, Slack, Gmail). OAuth2'yi n8n Credentials ekranından bir kez kurarsanız token yenileme otomatik halledilir. Anahtarları asla URL veya body'de açıkta tutmayın — her zaman Credentials kullanın.
Request body: JSON, form-data, query params
Body formatı API'nin beklediği şekilde olmalı. JSON modunda 'Specify Body' = JSON seçip parametre objesi yazarsınız — en yaygın. Form-Encoded (application/x-www-form-urlencoded) eski API'ler için, form-data ise dosya yüklerken (binary). Query params küçük filtreler için pratiktir (?status=active&limit=50) ama uzun listeler ya da hassas veriler body'de gönderilmelidir.
Response handling ve pagination
API yanıtı her zaman beklediğiniz gibi gelmez. Response status code 200 değilse n8n hata fırlatır — 'Continue On Fail' ile akışın durmamasını sağlayıp 'On Error' branch'inde işleyebilirsiniz. Status 429 (rate limit) görürseniz Wait + retry pattern'i uygulayın. Pagination için HTTP Request'in 'Pagination' tab'ı kritik: cursor-based ya da page-number tabanlı stratejiyi seçin ve 'Max Pages' ile sonsuz döngüyü engelleyin.
Webhook trigger: URL, secret, GET/POST
Webhook node bir endpoint URL üretir (örn. https://n8n.example.com/webhook/abc123). Bu URL'yi dış servise (Stripe, GitHub, Typeform, kendi backend'iniz) verirsiniz; o servis bir olay olduğunda buraya POST atar. HTTP Method (GET/POST), Path (/webhook-name) ve Authentication (None / Basic / Header / JWT) ayarlarını yapılandırırsınız. En kritik: Webhook URL'inizi public yapmadan önce mutlaka bir auth katmanı ekleyin — herhangi biri spam atabilir.
Test vs Production webhook URL'leri
Webhook node'un üzerinde iki URL gösterir: 'Test URL' (editor'da 'Execute Workflow' bekliyorken aktif, kısa süreli) ve 'Production URL' (workflow Active olduğunda kalıcı aktif). Geliştirme sırasında Test URL'yi kullanın; canlıya alırken Production URL'ye geçin ve dış servisteki webhook config'i güncelleyin. En sık yapılan hata: Test URL ile geliştirip aynı URL'yi production'a koymak — sonra çalışmadığını fark etmek.
Webhook response: senkron vs asenkron
Webhook'un nasıl yanıt vereceği 'Respond' parametresinden belirlenir. 'Immediately' modu olay alındığı anda 200 OK döner, akış arka planda çalışır — webhook gönderenin beklemesini istemiyorsanız (Stripe, GitHub) idealdir. 'When Last Node Finishes' tüm akış bitene kadar bekler, son node'un çıktısını döner — sizden veri bekleyen entegrasyonlar için. 'Using Respond to Webhook Node' ise akışta istediğiniz noktada özelleştirilmiş yanıt dönmenizi sağlar — chatbot/form gibi senkron senaryolar için en esnek olanı.
Bu bölümün workflow'u (n8n editör görünümü)