cURL Komutları ile Test¶
Bu sayfa, MuditaKurye API uç noktalarını hızlıca test etmek için kullanılabilecek cURL komutlarını içerir. Komutlar bash uyumludur ve Fish shell kullanıcıları için küçük farklar not edilmiştir.
Değişkenlerle çalışın
API_KEY, RESTAURANT_ID gibi değerleri değişken olarak tanımlamak komut tekrarını azaltır.
export API_BASE=https://api.muditakurye.com.tr
export API_KEY=yk_sizin_api_anahtariniz
export RESTAURANT_ID=rest_xxxxx
Fish shell kullanıyorsanız:
set -x API_BASE https://api.muditakurye.com.tr
set -x API_KEY yk_sizin_api_anahtariniz
set -x RESTAURANT_ID rest_xxxxx
1. Sağlık Kontrolü¶
Beklenen yanıt:
2. Sipariş Oluşturma¶
Aşağıdaki örnek X-API-Key başlığı ile kimlik doğrulaması yapar.
curl -X POST "$API_BASE/webhook/third-party/order" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"orderId": "curl_demo_001",
"restaurantId": "'$RESTAURANT_ID'",
"customerName": "Mehmet Kara",
"deliveryAddress": "Cumhuriyet Mah. 123. Sk. No:45, İzmir",
"paymentMethod": "CASH",
"paymentCaptured": false,
"total": 79.90,
"currency": "TRY",
"items": [
{
"productCode": "LAHMACUN",
"productName": "Lahmacun",
"quantity": 2,
"unitPrice": 19.95,
"totalAmount": 39.90
},
{
"productCode": "AYRAN",
"productName": "Ayran",
"quantity": 2,
"unitPrice": 10,
"totalAmount": 20
}
],
"notes": "Bol limon"
}'
Basic Auth ile Gönderim¶
curl -X POST "$API_BASE/webhook/third-party/order" \
-u "kullanici_adiniz:parolaniz" \
-H "Content-Type: application/json" \
-d '{
"orderId": "curl_basic_auth",
"restaurantId": "'$RESTAURANT_ID'"
}'
3. Webhook Testi¶
Örnek Payload Gönderme¶
Webhook alıcınızı test etmek için MuditaKurye'nin göndereceği payload formatını taklit edin.
curl -X POST http://localhost:3000/webhook/muditakurye/status \
-H "Content-Type: application/json" \
-d '{
"event": "order.status_changed",
"orderId": "curl_demo_001",
"yemekKuryeOrderId": "550e8400-e29b-41d4-a716-446655440000",
"status": "PREPARED",
"previousStatus": "VALIDATED",
"timestamp": "2025-11-10T17:45:00+03:00"
}'
İmza Başlığı ile Test¶
X-MuditaKurye-Signature doğrulamasını simüle etmek için HMAC hesaplayın.
SECRET=whsec_sizin_gizliniz
BODY='{"event":"order.status_changed","orderId":"curl_demo_001"}'
SIGNATURE=$(printf "%s" "$BODY" | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')
curl -X POST http://localhost:3000/webhook/muditakurye/status \
-H "Content-Type: application/json" \
-H "X-MuditaKurye-Signature: $SIGNATURE" \
-d "$BODY"
4. Hata Senaryoları¶
Eksik Alan¶
curl -X POST "$API_BASE/webhook/third-party/order" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"restaurantId": "'$RESTAURANT_ID'"}'
Beklenen yanıt: 400 Missing orderId
Geçersiz Anahtar¶
curl -X POST "$API_BASE/webhook/third-party/order" \
-H "X-API-Key: hatali" \
-H "Content-Type: application/json" \
-d '{"orderId": "bad_key", "restaurantId": "'$RESTAURANT_ID'"}'
Beklenen yanıt: 401 Authentication failed
5. cURL Çıktılarını İnceleme¶
-iflag'i ile HTTP başlıklarını görün:curl -i ...-vflag'i ile detaylı log alın.-o response.jsonile yanıtı dosyaya kaydedin,jqile formatlayın:jq '.' response.json
6. Fish Shell için Fonksiyon Örneği¶
function mk-create-order --argument-names order_id
set payload '{"orderId":"'$order_id'","restaurantId":"'$RESTAURANT_ID'"}'
curl -X POST "$API_BASE/webhook/third-party/order" \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d $payload
end
mk-create-order demo_fish_001
Son Notlar¶
- Test ortamlarında
https://staging-api.muditakurye.com.tradresini kullanın. - Üretim öncesi rate limit, hata kodları ve webhook retry davranışını görmek için
api/errors.mdveapi/webhooks.mdsayfalarına göz atın. - Manuel cURL testlerini CI/CD pipeline'ında otomatikleştirmek için curl-to-Go veya Postman CLI gibi araçlardan yararlanabilirsiniz.