API'lerde JSONPath: Basit Bir Kılavuz

API'lardaki karmaşık JSON'lar zorlayıcı olabilir. JSONPath, verileri kolayca çekmeyi sağlar. JSONPath nedir ve kodumuzda nasıl kullanırız? Bu makale cevaplıyor!

Efe Demir

Efe Demir

5 June 2025

API'lerde JSONPath: Basit Bir Kılavuz

```html

Hiç devasa bir JSON yanıtının içinde, ihtiyacınız olan o tek veri parçasını bulmaya çalıştınız mı? Eğer denediyseniz, bunun samanlıkta iğne aramaya benzeyebileceğini bilirsiniz. İşte JSON verileriyle API'lerde uğraşırken hayatınızı çok daha kolay hale getirebilecek küçük bir araç olan JSONPath devreye giriyor.

JSONPath Nedir?

JSONPath, XML için XPath'e benzer şekilde, JSON için bir sorgu dilidir. Basit ve sezgisel bir sözdizimi kullanarak JSON verilerinizin içinden gezinmenize ve belirli parçalarını çıkarmanıza olanak tanır. Bunu, JSON verileriniz üzerinde sorgular çalıştırıp, tüm yanıta girmeden tam olarak ihtiyacınız olanı elde etmenin bir yolu olarak düşünün.

Neden JSONPath Kullanmalısınız?

Bir API'den devasa bir JSON yanıtınız olduğunu hayal edin; tek ihtiyacınız olan, derinlemesine iç içe geçmiş belirli bir alanın değeri. JSONPath olmadan, genellikle JSON'u ayrıştırmak için bir dizi kod yazmanız gerekir, bu da sıkıcı ve hataya açık olabilir. JSONPath, tam olarak neyi çıkarmak istediğinizi belirlemenize izin vererek bunu basitleştirir, kodunuzu daha temiz ve bakımı daha kolay hale getirir.

JSONPath Nasıl Çalışır?

JSONPath, daha karmaşık sorgular için bazı ek özelliklerle birlikte, JavaScript nesne gösterimine benzer bir sözdizimi kullanır. İşte temel sözdiziminin hızlı bir özeti:

JSONPath'in nasıl çalıştığını görmek için bazı örneklere dalalım.

Temel JSONPath Örnekleri

Bir film veritabanı API'sinden aşağıdaki JSON verilerini düşünün:

{
  "movies": {
    "action": [
      { "title": "Mad Max: Fury Road", "director": "George Miller", "year":                  2015, "rating": 8.1 },
      { "title": "John Wick", "director": "Chad Stahelski", "year": 2014,                     "rating": 7.4 }
    ],
    "drama": [
      { "title": "The Shawshank Redemption", "director": "Frank Darabont",                   "year": 1994, "rating": 9.3 },
      { "title": "Forrest Gump", "director": "Robert Zemeckis", "year":                       1994, "rating": 8.8 }
    ],
    "comedy": [
      { "title": "The Grand Budapest Hotel", "director": "Wes Anderson",                     "year": 2014, "rating": 8.1 }
    ]
  }
}

Tüm aksiyon filmlerini çıkarma:

$.movies.action[*]

Bu size tüm aksiyon filmi nesnelerinin bir dizisini verecektir.

Tüm drama filmlerinin başlıklarını çıkarma:

$.movies.drama[*].title

Bu, tüm drama filmlerinin başlıklarının bir dizisini döndürecektir: ["The Shawshank Redemption", "Forrest Gump"].

"Mad Max: Fury Road" filminin derecelendirmesini çıkarma:

$.movies.action[?(@.title == "Mad Max: Fury Road")].rating

Bu, "Mad Max: Fury Road" filminin derecelendirmesini döndürecektir: 8.1.

2014'te yayınlanan tüm filmleri bulma:

$.movies..[?(@.year == 2014)]

Bu, bu durumda 2014'te yayınlanan tüm filmleri döndürecektir: ["John Wick", "The Grand Budapest Hotel"].

API'lerde JSONPath

JSONPath'i API'lerde kullanmak, bir JSON yanıtından belirli bilgileri çıkarmak istediğinizde inanılmaz derecede faydalıdır. Birçok programlama dili ve araç, JSONPath'i destekleyen kitaplıklara sahiptir ve bu da onu projelerinize entegre etmeyi kolaylaştırır.

Örneğin, Javascript'te, jsonpath kitaplığını kullanabilirsiniz:

const jsonpath = require('jsonpath');

// Örnek JSON verileri
const data = {
  movies: {
    action: [
      { title: "Mad Max: Fury Road", director: "George Miller", year: 2015, rating: 8.1 },
      { title: "John Wick", director: "Chad Stahelski", year: 2014, rating: 7.4 }
    ],
    drama: [
      { title: "The Shawshank Redemption", director: "Frank Darabont", year: 1994, rating: 9.3 },
      { title: "Forrest Gump", director: "Robert Zemeckis", year: 1994, rating: 8.8 }
    ],
    comedy: [
      { title: "The Grand Budapest Hotel", director: "Wes Anderson", year: 2014, rating: 8.1 }
    ]
  }
};

// Tüm drama filmlerinin başlıklarını çıkarma
const titles = jsonpath.query(data, '$.movies.drama[*].title');
console.log(titles); // Output: ["The Shawshank Redemption", "Forrest Gump"]

Benzer şekilde, Python'da, jsonpath-ng kitaplığını kullanabilirsiniz:

from jsonpath_ng import jsonpath, parse

# Örnek JSON verileri
data = {
    "movies": {
        "action": [
            {"title": "Mad Max: Fury Road", "director": "George Miller", "year": 2015, "rating": 8.1},
            {"title": "John Wick", "director": "Chad Stahelski", "year": 2014, "rating": 7.4}
        ],
        "drama": [
            {"title": "The Shawshank Redemption", "director": "Frank Darabont", "year": 1994, "rating": 9.3},
            {"title": "Forrest Gump", "director": "Robert Zemeckis", "year": 1994, "rating": 8.8}
        ],
        "comedy": [
            {"title": "The Grand Budapest Hotel", "director": "Wes Anderson", "year": 2014, "rating": 8.1}
        ]
    }
}

# Tüm drama filmlerinin başlıklarını çıkarma
jsonpath_expr = parse('$.movies.drama[*].title')
titles = [match.value for match in jsonpath_expr.find(data)]
print(titles)  # Output: ["The Shawshank Redemption", "Forrest Gump"]

Apidog'da JSONPath Kullanma

Apidog'un kontrol panelini gösteren bir resim

Apidog, API'lerle çalışma sürecini basitleştirmek için tasarlanmış çok yönlü bir araçtır ve JSONPath'i kutudan çıkar çıkmaz destekler.

Apidog'un JSONPath'in gücünden etkili bir şekilde yararlanmanıza nasıl yardımcı olabileceği aşağıda açıklanmıştır:

İlk olarak, API'lerinize istek göndermeniz ve yanıtları doğrudan Apidog ile görüntülemeniz gerekir. Ardından, yanıttan tüm aksiyon filmlerinin başlıklarını çıkarmak için bir JSONPath sorgusu uygulamak için sağlanan arayüzü kullanabilirsiniz.

Apidog'un Post İşlemciler Sayfası

Yukarıdaki ekran görüntüsünden, (1) sunucumuza bir GET isteği gönderdiğimizi göreceksiniz - yukarıda yanıt olarak aldığımız JSON verilerini kullanarak basit bir express sunucusu oluşturdum. Ardından Post İşlemciler sekmesine (2) geçtim ve yeni bir işlem ekledim - Değişken Çıkar (3).

Değişken Çıkar'a tıkladığınızda, aşağıdaki sayfa gösterilecektir;

Apidog'un JsonPath Yapılandırmasını Çıkar Sayfası

İsterseniz bir değişken adı (1) ayarlayabilirsiniz. Değişkenler, farklı API'leri izlemek veya oluşturmak istiyorsanız ve genel yapılandırmayı yönetmek için tek bir yere ihtiyacınız varsa kullanışlıdır. Buradaki değişkenler .env dosyaları gibidir.

Diğer adım, filtrelemek istediğiniz JSONPath'i yazmaktır (2). Bu durumda, JSON'umuzun aksiyon dizisindeki filmlerin başlıklarını almak istiyoruz. Şu anda yolu yazdıktan sonra, aşağıdaki gibi sorgunun yanıt sayfasını açmak için ok düğmesine (3) tıklayın.

jsonpath yanıtı apidog

Yukarıdaki yanıttan görebileceğiniz gibi, Apidog aksiyon dizisindeki filmlerin başlıklarını filtreledi ve bize gösterdi.

Bunu denemek isterseniz, Apidog'u indirdiğinizden ve kurduğunuzdan ve onunla ilk isteğinizi gönderdiğinizden emin olun.

button

Sonuç

JSONPath, API'lerdeki JSON yanıtlarından veri almak ve gezinmek için paha biçilmez bir araçtır. Karmaşık JSON yapılarıyla çalışma sürecini basitleştirerek geliştirme iş akışınızı daha verimli hale getirir. JSONPath'i Apidog gibi araçlarla entegre ederek, tam olarak ihtiyacınız olan verileri kolayca filtreleyebilir ve alabilir, API test ve hata ayıklama süreçlerinizi geliştirebilirsiniz. İster film başlıkları çıkarıyor, ister belirli kayıtları filtreliyor veya yanıtları doğruluyor olun, JSONPath, JSON verilerini işlemek için net ve öz bir yol sunar. Bir sonraki projenizde deneyin ve getirdiği kolaylaştırılmış basitliği deneyimleyin.

```

Explore more

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Cursor ile Deepseek R1'i Yerel Olarak Nasıl Kullanılır

Yerel DeepSeek R1'i Cursor IDE ile kurun ve yapılandırın. Özel, uygun maliyetli AI kodlama yardımı için.

4 June 2025

Android'de Gemma 3n Nasıl Çalıştırılır?

Android'de Gemma 3n Nasıl Çalıştırılır?

Google AI Edge Gallery'den Gemma 3n'i Android'e kurup çalıştırmayı öğrenin.

3 June 2025

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

GitHub Eylemleri ile Claude Kodunu Nasıl Kullanılır

Claude Code'u GitHub Actions ile entegre edin: Kod incelemeleri, hata düzeltmeleri ve özellik uygulamaları. Kurulum, iş akışları ve geliştiriciler için ipuçları.

29 May 2025

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

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