İlk istek
İsteği sunucunuzdan gönderin ve API anahtarınızı gizli tutun.
: "${REDDITAPP_API_KEY:?Set REDDITAPP_API_KEY on your server}"
curl --get --fail-with-body 'https://api.redditapp.com/v1/search' \
-H "Authorization: Bearer ${REDDITAPP_API_KEY}" \
--data-urlencode 'q=offline maps' \
--data-urlencode 'subreddit=hiking' \
--data-urlencode 'limit=3'API başvurusu
↔ Tabloyu yatay kaydırın
API yolları
| Yöntem | Yol | Parametreler |
|---|---|---|
GET | /v1/search | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/posts | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/comments | q, subreddit, author, kind, from, to, min_score, limit, page |
GET | /v1/item | id |
GET | /v1/subreddits | prefix, limit |
GET | /v1/status | — |
Ek notlar
GET | /v1/search · /v1/posts · /v1/comments · /v1/item · /v1/subreddits · /v1/status |
|---|---|
q · subreddit · author · kind | kind: post | comment |
from · to | YYYY-MM-DD |
min_score | score ≥ min_score |
limit · page | 1…100 · 1…100 |
/v1/item | id |
/v1/subreddits | prefix · limit |
_doc | ≠ date · ≠ relevance · ≠ score |
pagination.relation | eq · gte · unknown |
pagination | has_more · window_exhausted · truncated |
1 credit | $0.001 |
$1 | 1000 credits |
$50 | 50000 credits |
400 · 401 · 402 · 429 · 502 | HTTP |
Uygulama ile arşiv arasına kendi arka ucunuzu yerleştirin
Örnek yürüyüş özelliğinde mobil veya web istemcisi offline maps ifadesini kendi arka ucunuza gönderir. Arka ucunuz isteği doğrular, uygulama sınırlarını uygular ve kayıtlı hizmet anahtarıyla arşivi çağırır. Yalnızca okuma ekranının gerektirdiği alanları döndürün. Bu örnek bir tasarım başlangıcıdır; bu hesabın yürüyüş kayıtları elde ettiğini iddia etmez.
GET https://api.redditapp.com/v1/search?q=offline%20maps&subreddit=hiking&limit=3&page=1 kullanın. Arka uçtan X-API-Key: YOUR_SAVED_KEY veya Authorization: Bearer YOUR_SAVED_KEY başlığını gönderin. Kimlik bilgilerini URL’lerden, istemci paketlerinden ve herkese açık günlüklerden uzak tutun. Hesap sayfasının oturum çerezi veri alma kimlik doğrulamasının yerine geçmez.
Hizmetin gerçekten kabul ettiği filtreleri seçin
Arama q, subreddit, author, kind, from, to, min_score, limit ve page kabul eder. q, title ve text üzerinde AND eşleştirmesi uygular; tam ifade ya da anlamsal eşleşme sözü vermez. kind için post veya comment kullanılabilir. Subreddit ve author tam alan eşleşmesi filtreleridir. min_score kayıtları filtreler, sıralamaz.
from ve to değerlerini UTC’de YYYY-MM-DD tarihleri olarak verin. to tarihi o UTC gününün tamamını kapsar. Örneğin from=2025-01-01 ve to=2025-12-31, tarih sıralaması istemeden bir aralık tanımlar. ISO tarih-saat dizeleri, keyfî sorgu DSL’i, sort parametresi veya parent_id/link_id filtreleri göndermeyin. Desteklenmeyen parametreler reddedilir.
İşe uygun uç noktayı seçin
GET /v1/posts ve GET /v1/comments kayıt türünü sınırlar ve arama filtrelerini kabul eder; id gerektirmezler. GET /v1/item?id=RECORD_ID, erişilebilir bir kaydı kimliğiyle arar. GET /v1/subreddits?prefix=hik&limit=3 sınırlı bir subreddit toplulaştırması döndürür; bu sayımlar küresel düzeyde kesinlik garantisi değildir.
GET /v1/status herkese açıktır ve ücretsizdir. Geçmiş arşive dair sabit bir açıklama döndürür ve HTTP işleyicisinin yanıt verdiğini gösterir. Arama arka ucunu sorgulamaz, içerik kapsamını belirlemez ve arşivin sağlığını ölçmez. Bu uç noktaların hiçbiri gönderi oluşturma, oy verme, mesajlaşma, hesap yer imleri veya tam bir konuşma ağacı sağlamaz.
Daha fazla göster eklemeden sayfalama alanlarını okuyun
Veri alma yanıtlarında data, pagination ve credits bulunur. data içindeki kayıtlar üst kaynaktan gelen düz nesnelerdir; seçtiğiniz title, author, tarih veya permalink alanı eksik olabilir. Arşiv _doc sırası kullanır; kronolojik, alaka düzeyi veya puan sırası kullanmaz. Yerel sıralama, alınan alt kümeyi yeniden düzenleyebilir ama onu tüm arşivin en yeni ya da en yüksek puanlı alt kümesi yapamaz.
pagination.page değerini artırırken filtreleri ve limit değerini aynı tutun. pagination.has_more, mevcut olduğunda bir sonraki kayda bakarak devamı belirler. Değer false ise otomatik bir sonraki istek sunmayın. pagination.window_exhausted, sınırlı pencerenin son sayfasına ulaşıldığını belirtir; bu noktaya gelmek eşleşen tüm arşiv içeriğinin alındığını kanıtlamaz.
Sınırlar 1–100 kayıt ve 1–100 sayfadır. pagination.total değerini pagination.relation ile birlikte okuyun: eq yanıtın sayım kurallarına göre kesinliği, gte alt sınırı, unknown ise null da olabilen güvenilir toplamın yokluğunu ifade eder. İlk sayfadan sonraki boş bir sayfa toplamı kanıtlayamaz. limit=100 iken dolu 100. sayfada ek kontrol kaydına yer kalmaz ve toplam alt sınırdır; sayfa sınırında has_more false olur. Subreddit toplulaştırmasında toplam bilinmez; pagination.truncated dışarıda kalan toplulaştırma gruplarını işaretler.
Ücretlendirmeyi ve hataları açıkça ele alın
Boş data dizisi dâhil, başarılı bir veri alma isteği bir krediye mal olur. Göndermeden önce girişi doğrulayın ve yalnızca yükleniyor animasyonu göstermek için sayfa istemeyin. HTTP 400 geçersiz girdiyi, 401 eksik veya geçersiz hizmet anahtarını, 402 yetersiz krediyi, 429 hız sınırını belirtir. Bu şekilde reddedilen istekler veri alma kredisi ayırmaz.
Üst hizmete yapılan başarısız istek HTTP 502 olarak bildirilir ve ayrılmış krediyi serbest bırakır ya da iade mutabakatının beklediğini belirtir. Uygulamanız yanıtı kaybederse sonuç belirsizdir; isteğin ücretsiz olduğunu varsaymayın. Sorgu durumunu koruyun, Retry-After’a uyun ve uygun olduğunda tekrar denemeyi kullanıcıya bırakın. Anahtar ve bakiye işleri yürüyüşçünün değil, operatörün sorumluluğudur.
Yanıtı dürüst bir okuma ekranına dönüştürün
Kayıt metnini görüntülemeden önce kaçışlayın. Kaynak kimliğini ve mevcutsa kaynak bağlantısını koruyun; eksik tarihleri bilinmiyor olarak işaretleyin ve kaydın oluşturulmasıyla uygulamanızın onu almasını ayırın. Üst kayıt ve bağlantı kimlikleri mevcut olduklarında yerel gruplamaya yardımcı olabilir, ancak eksik üst kayıtları sağlamazlar.
Arayüz durumları, önerilen yükleniyor, boş ve hata mesajlarını geliştirir. Uygulama senaryosu sayfasındaki Uygulama notları kartları, yerel kaynakları ve istek bütçesini ele alır. Anahtar ve krediler hem hesap kurulumunu hem fiyatları içerir. Kendi uygulamanızı gözden geçirip test edin; bu örnekler çalışan bir işlevi veya güncel patika tavsiyesini kanıtlamaz.