Claude Kod Yetenekleri ile API İstekleri / Ağ İletişimi (Veri Çekme) Nasıl Yapılır

Ashley Goolam

Ashley Goolam

21 January 2026

Claude Kod Yetenekleri ile API İstekleri / Ağ İletişimi (Veri Çekme) Nasıl Yapılır

Her yeni entegrasyon için manuel olarak fetch çağrıları oluşturmak, kimlik doğrulama token'larını yönetmek ve API yanıtlarını ayrıştırmak, web uygulamaları için assembly kodu yazmanın modern karşılığıdır. Claude Code'un veri çekme becerileri (data-fetching Skills), HTTP isteklerini kimlik doğrulama desenlerini, sayfalama ve yanıt doğrulamasını anlayan bildirimsel, yeniden kullanılabilir araçlara dönüştürerek tekrarlayan kodu ortadan kaldırır ve kod tabanınızda tutarlılık sağlar.

Geliştirme İş Akışları İçin API Ağ Yetenekleri Neden Önemlidir?

Her geliştirici, tekrarlayan API altyapısı üzerinde saatler harcar: OAuth 2.0 için başlıkları ayarlamak, hız sınırlı uç noktalar için üstel geri çekilmeyi (exponential backoff) uygulamak ve öngörülemeyen JSON yanıtları için tip korumaları (type guards) yazmak. Bu görevler hataya açıktır ve belirli hizmetlere sıkıca bağlıdır, bu da onları test etmeyi ve sürdürmeyi zorlaştırır. Claude Code Becerileri, bu karmaşıklığı yapay zeka asistanınızın doğal dille çağırabileceği sürüm kontrollü, test edilebilir araçlara soyutlar.

Değişim, zorunlu API çağrılarından bildirimsel veri çekmeye doğru. `fetch(url, { headers: {...} })` yazmak yerine, niyetinizi açıklarsınız: “ENV'den alınan token'ı kullanarak GitHub API'den kullanıcı verilerini getir ve tip denetimli sonuçlar döndür.” Beceri, kimlik bilgisi yönetimini, yeniden deneme mantığını ve yanıt ayrıştırmayı ele alarak uygulamanızın hemen kullanabileceği güçlü tip denetimli veriler döndürür.

💡
Harika API Dokümantasyonu oluşturan harika bir API Test aracı mı istiyorsunuz?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışabileceği entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
Düğme

Claude Code'da Veri Çekme Becerisini Kurma

Adım 1: Claude Code'u Yükleyin ve MCP'yi Yapılandırın

Claude Code CLI'ı henüz yüklemediyseniz:

npm install -g @anthropic-ai/claude-code
claude --version  # Should show >= 2.0.70

MCP yapılandırma dizinini ve dosyasını oluşturun:

# macOS/Linux
mkdir -p ~/.config/claude-code
touch ~/.config/claude-code/config.json

# Windows
mkdir %APPDATA%\claude-code
echo {} > %APPDATA%\claude-code\config.json
claude kodu

Adım 2: Veri Çekme Becerisini Klonlayın ve Oluşturun

Resmi veri çekme becerisi, REST, GraphQL ve genel HTTP istekleri için desenler sunar.

git clone https://github.com/anthropics/skills.git
cd skills/skills/data-fetching
npm install
npm run build

Bu, TypeScript işleyicilerini `dist/index.js`'e derler.

Adım 3: Beceriyi Yüklemek İçin MCP'yi Yapılandırın

`~/.config/claude-code/config.json` dosyasını düzenleyin:

{
  "mcpServers": {
    "data-fetching": {
      "command": "node",
      "args": ["/absolute/path/to/skills/data-fetching/dist/index.js"],
      "env": {
        "DEFAULT_TIMEOUT": "30000",
        "MAX_RETRIES": "3",
        "RATE_LIMIT_PER_MINUTE": "60",
        "CREDENTIALS_STORE": "~/.claude-credentials.json"
      }
    }
  }
}

Kritik:

claude becerileri

Adım 4: Kimlik Bilgileri Depolamasını Ayarlayın

Token'ları doğrudan kodlamaktan kaçınmak için kimlik bilgileri dosyasını oluşturun:

# Şifrelenmiş kimlik bilgileri deposu oluştur
mkdir -p ~/.claude
echo '{}' > ~/.claude/credentials.json
chmod 600 ~/.claude/credentials.json

API token'larınızı ekleyin:

{
  "github": {
    "token": "ghp_your_github_token_here",
    "baseUrl": "https://api.github.com"
  },
  "slack": {
    "token": "xoxb-your-slack-token",
    "baseUrl": "https://slack.com/api"
  },
  "custom-api": {
    "token": "Bearer your-jwt-token",
    "baseUrl": "https://api.yourcompany.com",
    "headers": {
      "X-API-Version": "v2"
    }
  }
}

Beceri, başlangıçta bu dosyayı okur ve kimlik bilgilerini isteklere enjekte eder.

Adım 5: Kurulumu Doğrulayın

claude

Yüklendikten sonra şunu çalıştırın:

/list-tools

Şunları görmelisiniz:

Available tools:
- data-fetching:rest-get
- data-fetching:rest-post
- data-fetching:rest-put
- data-fetching:rest-delete
- data-fetching:graphql-query
- data-fetching:graphql-mutation
- data-fetching:raw-http

Temel API İstek Desenleri

1. RESTful GET İstekleri

Araç: `data-fetching:rest-get`
Kullanım Durumu: Kimlik doğrulama, sayfalama ve önbellekleme ile REST uç noktalarından veri çekme

Parametreler:

Örnek: GitHub kullanıcı depolarını getirme

GitHub API'den "anthropics" kullanıcısı için depoları almak üzere rest-get kullanın; sayfa başına 100 öğe için sayfalama dahil olmak üzere yalnızca adı, açıklamayı ve stargazers_count değerini döndürün.

Oluşturulan yürütme:

// İşleyici şunu yürütür:
const response = await fetch('https://api.github.com/users/anthropics/repos', {
  headers: {
    'Authorization': 'token ghp_your_github_token_here',
    'Accept': 'application/vnd.github.v3+json'
  },
  params: {
    per_page: 100,
    page: 1
  }
});

// JMESPath ile dönüştür
const transformed = jmespath.search(response, '[*].{name: name, description: description, stars: stargazers_count}');
return transformed;

Claude Code kullanımı:

claude --skill data-fetching \
  --tool rest-get \
  --params '{"service": "github", "endpoint": "/users/anthropics/repos", "params": {"per_page": 100}, "transform": "[*].{name: name, description: description, stars: stargazers_count}"}'

2. POST/PUT/DELETE İstekleri

Araç: `data-fetching:rest-post` / `rest-put` / `rest-delete`
Kullanım Durumu: Kaynak oluşturma, güncelleme veya silme

Parametreler:

Örnek: Bir GitHub sorunu oluşturma

anthorpics/claude deposunda "Özellik İsteği: MCP Araç Önbellekleme" başlığı, açıklamayı içeren gövde ve ["geliştirme", "mcp"] etiketleriyle bir sorun oluşturmak için rest-post kullanın.

Yürütme:

await fetch('https://api.github.com/repos/anthropics/claude/issues', {
  method: 'POST',
  headers: {
    'Authorization': 'token ghp_...',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    title: "Feature Request: MCP Tool Caching",
    body: "Açıklamanın özellik..."
    labels: ["enhancement", "mcp"]
  })
});

3. GraphQL Sorguları

Araç: `data-fetching:graphql-query`
Kullanım Durumu: İç içe geçmiş ilişkilerle karmaşık veri çekme

Parametreler:

Örnek: Yorumlu depo sorunlarını getirme

anthorpics/skills deposundan başlık, yazar, yorum sayısı ve etiketler dahil olmak üzere en son 10 açık sorunu almak için graphql-query kullanın.
query RecentIssues($owner: String!, $repo: String!, $limit: Int!) {
  repository(owner: $owner, name: $repo) {
    issues(first: $limit, states: [OPEN], orderBy: {field: CREATED_AT, direction: DESC}) {
      nodes {
        title
        author { login }
        comments { totalCount }
        labels(first: 5) { nodes { name } }
      }
    }
  }
}

Parametreler:

{
  "service": "github",
  "query": "query RecentIssues($owner: String!, $repo: String!, $limit: Int!) { ... }",
  "variables": {
    "owner": "anthropics",
    "repo": "skills",
    "limit": 10
  }
}

4. Ham HTTP İstekleri

Araç: `data-fetching:raw-http`
Kullanım Durumu: REST/GraphQL araçları tarafından kapsanmayan özel durumlar

Parametreler:

Örnek: Özel başlıklarla Webhook teslimatı

https://hooks.slack.com/services/YOUR/WEBHOOK/URL adresine {text: "Dağıtım tamamlandı"} içeren bir JSON yükü ve özel başlık X-Event: deployment-success ile POST isteği yapmak için raw-http kullanın.

Gelişmiş Ağ Senaryoları

Sayfalama Yönetimi

Beceri, sayfalama desenlerini otomatik olarak algılar:

// GitHub Bağlantı başlığı ayrıştırması
const linkHeader = response.headers.get('Link');
if (linkHeader) {
  const nextUrl = parseLinkHeader(linkHeader).next;
  if (nextUrl && currentPage < maxPages) {
    return {
      data: currentData,
      nextPage: currentPage + 1,
      hasMore: true
    };
  }
}

Tüm sayfaları isteyin:

"anthropics" kullanıcısı için tüm depoları almak üzere rest-get kullanın, sayfalama artık sayfa kalmayana kadar otomatik olarak yönetilecektir.

Beceri, tüm sonuçların düz bir dizisini döndürür.

Hız Sınırlama ve Yeniden Deneme Mantığı

Her istek için yeniden deneme davranışını yapılandırın:

{
  "service": "github",
  "endpoint": "/rate_limit",
  "maxRetries": 5,
  "retryDelay": "exponential",
  "retryOn": [429, 500, 502, 503, 504]
}

Beceri, jitter ile üstel geri çekilmeyi (exponential backoff) uygular:

const delay = Math.min(
  (2 ** attempt) * 1000 + Math.random() * 1000,
  30000
);
await new Promise(resolve => setTimeout(resolve, delay));

Eşzamanlı İstek Yönetimi

Birden çok API çağrısını verimli bir şekilde toplu olarak işleyin:

Depolar için ayrıntıları almak üzere rest-get kullanın: ["claude", "skills", "anthropic-sdk"], istekleri maksimum 3 paralel bağlantı ile eşzamanlı olarak yürütün.

Beceri, eşzamanlılığı sınırlamak için `p-limit` kullanır:

import pLimit from 'p-limit';
const limit = pLimit(3); // Maks 3 eşzamanlı

const results = await Promise.all(
  repos.map(repo =>
    limit(() => fetchRepoDetails(repo))
  )
);

İstek Engelleme ve Sahtekarlık (Mocking)

Test için, gerçek API'lere vurmadan istekleri engelleyin:

// Beceri yapılandırmasında
"env": {
  "MOCK_MODE": "true",
  "MOCK_FIXTURES_DIR": "./test/fixtures"
}

Şimdi istekler, JSON dosyalarından sahte verileri döndürüyor:

// test/fixtures/github/repos/anthropics.json
[
  {"name": "claude", "description": "AI assistant", "stars": 5000}
]

Pratik Uygulama: Bir GitHub Paneli Oluşturma

Adım 1: Depo Verilerini Getirin

GitHub'dan "anthropics" organizasyonu için tüm depoları almak üzere rest-get kullanın; tam açıklama, yıldız sayısı, çatal sayısı ve açık sorun sayısı dahil. Sonuçları 5 dakika önbelleğe alın.

Adım 2: Katkıda Bulunan Verileriyle Zenginleştirin

Her depo için en iyi katkıda bulunanları getirin:

"anthropics/claude" deposu için katkıda bulunan istatistiklerini almak üzere rest-get kullanın, en iyi 10 katkıda bulunanla sınırlayın ve oturum açma ile katkı sayısını çıkarın.

Adım 3: Özet İstatistikleri Oluşturun

Verileri Claude Code'da birleştirin:

const repos = await fetchAllRepos('anthropics');
const enrichedRepos = await Promise.all(
  repos.map(async (repo) => {
    const contributors = await fetchTopContributors('anthropics', repo.name);
    return { ...repo, topContributors: contributors };
  })
);

return {
  totalStars: enrichedRepos.reduce((sum, r) => sum + r.stars, 0),
  totalForks: enrichedRepos.reduce((sum, r) => sum + r.forks, 0),
  repositories: enrichedRepos
};

Adım 4: Paneli Yayınlayın

GitHub API'yi kullanarak gh-pages dalına commit yapmak suretiyle panel verileriyle bir GitHub Pages sitesi oluşturmak için rest-post kullanın.

Hata Yönetimi ve Direnç

Beceri, doğru yönetim için hataları kategorize eder:

// 4xx hataları: İstemci hataları
if (response.status >= 400 && response.status < 500) {
  throw new SkillError('client_error', `Geçersiz istek: ${response.status}`, {
    statusCode: response.status,
    details: await response.text()
  });
}

// 5xx hataları: Sunucu hataları (yeniden denenebilir)
if (response.status >= 500) {
  throw new SkillError('server_error', `Sunucu hatası: ${response.status}`, {
    retryable: true,
    statusCode: response.status
  });
}

// Ağ hataları: Bağlantı hataları
if (error.code === 'ECONNREFUSED' || error.code === 'ETIMEDOUT') {
  throw new SkillError('network_error', 'Ağa erişilemiyor', {
    retryable: true,
    originalError: error.message
  });
}

Claude Code yapılandırılmış hatalar alır ve yeniden denemeye, iptal etmeye veya kullanıcı müdahalesi istemeye karar verebilir.

Sonuç

API ağ iletişimi için Claude Code Becerileri, geçici HTTP isteklerini güvenilir, tip güvenli ve gözlemlenebilir veri çekme araçlarına dönüştürür. Kimlik bilgisi yönetimini merkezileştirerek, akıllı yeniden denemeler uygulayarak ve yapılandırılmış hata yönetimi sağlayarak, API entegrasyon hatalarının en yaygın kaynaklarını ortadan kaldırırsınız. Dört çekirdek araçla başlayın—rest-get, rest-post, graphql-query ve raw-http—ardından özel kullanım durumlarınız için bunları genişletin. Beceri yapılandırmasına yapılan yatırım, kod tutarlılığı ve geliştirme hızı açısından anında geri dönüş sağlar.

Veri çekme becerileriniz dahili API'lerle etkileşime girdiğinde, yapay zeka destekli entegrasyonlarınızın güvenilir sözleşmeleri kullandığından emin olmak için bu uç noktaları Apidog ile doğrulayın.

Düğme

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin