Kolayanla
← KolayAnla Ana Sayfa

Geliştirici Dokümantasyonu

KolayAnla API'sini sitenize entegre etmek için teknik rehber

Hızlı Başlangıç

1. API Anahtarı Alın

İlk olarak kurumsal@kolayanla.com adresinden iletişime geçerek bir site oluşturun ve API anahtarınızı alın.

X-API-Key: site_xxxxxxxxxxxxxxxxxxxxxxxx

2. API Endpoint'ini Çağırın

Finansal haberinizi POST isteği ile gönderin:

POST https://kolayanla.com/api/kolayanla/interpret

Headers:
  Content-Type: application/json
  X-API-Key: site_xxxxxxxxxxxxxxxxxxxxxxxx

Body:
{
  "title": "TCMB faiz kararı açıklandı",
  "content": "Merkez Bankası politika faizini...",
  "level": "beginner",  // 'beginner' | 'normal' | 'advanced'
  "newsId": "unique-id" // opsiyonel
}

3. Yanıtı İşleyin

API basitleştirilmiş içeriği döndürür:

{
  "interpretation": {
    "title": "Basitleştirilmiş başlık",
    "whatHappened": "Ne oldu? (2-3 cümle özet)",
    "whyItMatters": "Sana ne? (kişisel finans etkisi)",
    "whatToKnow": "Bilmen gerekenler (SPK-uyumlu)"
  },
  "cached": false,
  "requestId": "req_xxxxxx"
}

Entegrasyon Örnekleri

JavaScriptFetch API ile

async function simplifyNews(title, content, level = 'normal') {
  try {
    const response = await fetch('https://kolayanla.com/api/kolayanla/interpret', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': 'site_xxxxxxxxxxxxxxxxxxxxxxxx'
      },
      body: JSON.stringify({
        title,
        content,
        level,
        newsId: generateNewsId() // kendi ID sisteminiz
      })
    });

    if (!response.ok) {
      throw new Error(`API error: ${response.status}`);
    }

    const data = await response.json();

    // Basitleştirilmiş içeriği göster
    displaySimplifiedNews(data.interpretation);

    return data;
  } catch (error) {
    console.error('KolayAnla API hatası:', error);
    throw error;
  }
}

// Kullanım
simplifyNews(
  'TCMB faiz kararı açıklandı',
  'Merkez Bankası politika faizini %42,5 seviyesinde tuttu...',
  'beginner'
);

PHPcURL ile

<?php
function simplifyNews($title, $content, $level = 'normal') {
    $apiKey = 'site_xxxxxxxxxxxxxxxxxxxxxxxx';

    $data = [
        'title' => $title,
        'content' => $content,
        'level' => $level,
        'newsId' => uniqid('news_')
    ];

    $ch = curl_init('https://kolayanla.com/api/kolayanla/interpret');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        'Content-Type: application/json',
        'X-API-Key: ' . $apiKey
    ]);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($httpCode !== 200) {
        throw new Exception("API error: $httpCode");
    }

    return json_decode($response, true);
}

// Kullanım
$result = simplifyNews(
    'TCMB faiz kararı açıklandı',
    'Merkez Bankası politika faizini...',
    'beginner'
);

echo $result['interpretation']['title'];
?>

Pythonrequests ile

import requests
import uuid

def simplify_news(title, content, level='normal'):
    api_key = 'site_xxxxxxxxxxxxxxxxxxxxxxxx'

    response = requests.post(
        'https://kolayanla.com/api/kolayanla/interpret',
        headers={
            'Content-Type': 'application/json',
            'X-API-Key': api_key
        },
        json={
            'title': title,
            'content': content,
            'level': level,
            'newsId': str(uuid.uuid4())
        }
    )

    response.raise_for_status()
    return response.json()

# Kullanım
result = simplify_news(
    'TCMB faiz kararı açıklandı',
    'Merkez Bankası politika faizini...',
    'beginner'
)

print(result['interpretation']['title'])

API Referansı

İstek Parametreleri

ParametreTipZorunluAçıklama
titlestringEvetHaberin orijinal başlığı
contentstringEvetHaberin tam içeriği (min 100 karakter)
levelenumHayırBasitleştirme seviyesi: 'beginner', 'normal', 'advanced' (varsayılan: normal)
newsIdstringHayırBenzersiz haber ID'si (cache için önerilir)

Yanıt Formatı

AlanTipAçıklama
interpretation.titlestringBasitleştirilmiş başlık
interpretation.whatHappenedstringNe oldu? (2-3 cümle özet)
interpretation.whyItMattersstringSana ne? (kişisel finans etkisi)
interpretation.whatToKnowstringBilmen gerekenler (SPK-uyumlu açıklama)
cachedbooleanCache'ten mi döndü
requestIdstringİstek takip ID'si

Hata Kodları

KodAçıklamaÇözüm
401Geçersiz veya eksik API anahtarıX-API-Key header'ını kontrol edin
403IP kısıtlamasıBeyaz listeye ekleyin veya destek alın
429Rate limit aşıldıİstekleri sınırlayın veya planınızı yükseltin
400Geçersiz parametrelertitle ve content zorunludur
500Sunucu hatasıTekrar deneyin veya destek alın

En İyi Uygulamalar

Cache Kullanın

Aynı haber için tekrar istek göndermek yerine newsId parametresi ile cache'ten yararlanın.

Rate Limiting

API isteklerinizi sınırlayın. Toplu işlemler için batch endpoint'i kullanın.

Hata Yönetimi

API hataları için fallback mekanizması oluşturun. Orijinal haberi göstermeye devam edin.

Async İşleme

API çağrılarını asenkron yapın, kullanıcı deneyimini engellemeden basitleştirme sunun.

Destek mi Lazım?

Teknik sorularınız için ekibimizle iletişime geçin. Entegrasyon desteği, özel ihtiyaçlar ve daha fazlası için hazırız.