Önce tek bir önizlemenin sınırlarını kurun
Bu tarif küçük bir geçmiş yorum önizlemesi hazırlar. İsteği fetch bulunan bir Node.js arka ucunda çalıştırın. process.env.REDDIT_FETCH_API_KEY değerini o ortamda okuyun ve eksikse arşive ulaşmadan işlemi durdurun. Uygulamanızın kullanıcısına giden yanıt, ekran için hazırlanmış veriler içermelidir. Sunucunun arşivden veri almak için kullandığı anahtar bu yanıtın parçası olmamalı ve hata mesajlarına da eklenmemelidir.
Sabit hedef https://api.redditfetch.com/v1/comments?subreddit=javascript&limit=3 ve örneğin {"X-API-Key": key} başlığı kullanılabilir. Authorization: Bearer <key> de geçerlidir. Bu hedefi tarayıcıdan gelen herhangi bir URL ile değiştirmeyin. Kendi yolunuzun erişim kurallarını ve tüketim sınırlarını uygulamanız belirler. Bir ziyaretçinin ne zaman yeni ücretli yenileme başlatabileceği ile ne zaman saklanan sonucu göreceği, burada vereceğiniz ayrı bir karardır.
HTTP yanıtı ile ağ istisnasını ayrı tutun
Reddedilen ağ işlemi, await fetch çevresindeki catch bölümüne ulaşır; sınıflandırılabilecek kullanılabilir bir HTTP yanıtı sunmaz. Buna karşılık 401 veya 402 durum kodu, tamamlanmış bir söz üzerinden gelebilir. Önce response.ok değerini inceleyin. Başarısız durumu işlemeden gövdeyi başarılı bir yorum sayfası olarak yorumlamayın. Aksi halde erişim hatası kullanıcıya yanlışlıkla hiç kayıt bulunamadığı şeklinde gösterilebilir.
HTTP 400 için parametreleri düzeltin, 401 için anahtarı, 402 için bakiyeyi kontrol edin. 429 durumunda gecikmeli ve sınırlı tekrarlar uygun olabilir. Her hatayı otomatik olarak yeniden denemeyin. Bağlantı, sunucudaki ücretli başarıdan sonra kesilebilir; yerel istisna isteğin ücretsiz olduğunu göstermez. Başarılı tekrar ayrı kredi kullanacağından, tekrar kararı hata sınıflandırmasından sonra verilmelidir.
JSON çözümlemesinden sonra alanları doğrulayın
Başarılı HTTP yolunda await response.json() çağrısı da hata verebilir. İç tanılama kayıtlarında bunu taşıma hatasından ayırın. Ardından beklenen yanıt yapısını ve data değerinin dizi olduğunu doğrulayın. Çözümlenmiş JSON yalnızca bir JavaScript değeridir; her kayıtta kullanılabilir metin veya ekranınızın ihtiyaç duyduğu doğru alan türleri bulunduğunu kanıtlamaz. Kartlara aktarılacak bilgilerin denetimi, metni göstermeden önce ayrı bir adım olarak yapılmalıdır.
Parçaları yerel ekran durumlarına dönüştürün
Yalnızca önizlemede kullanılacak alanları eşleyin. Eksik metin ile boş dizeyi ayırın, kaynak kayda dönebilmek için mevcut kimlikleri koruyun ve içeriği metin olarak gösterin. Yorumlar düz parçalardır. Varsa isteğe bağlı ilişki alanları eksiksiz bir konuşma ağacı kanıtlamaz. Üç kayıt alınmış olması, bir yoruma verilmiş bütün yanıtların toplandığı sonucunu da desteklemez.
Yükleniyor, hazır, boş ve başarısız durumlarını yerel olarak tanımlayın. Doğrulanmış boş dizi, yalnızca bu isteğin kayıt getirmediğini söyler. Kayıt geldiği halde hiçbiri görüntüleme denetiminizi geçmediyse bu nedeni ayrıca kaydedin. Yenileme başarısızken önceki önizlemeyi ekranda tutabilirsiniz; ancak bunun önceden saklanmış kopya olduğu anlaşılmalı, yeni bir sonuç gibi sunulmamalıdır.
Sonraki çağrının gerekip gerekmediğini seçin
Yerel ilerlemeyi güncellemeden doğrulanmış sonucu istek parametreleriyle birlikte kaydedin. Kopyanın yeniden kullanılması yeni veri alımı gerektirmez; boş olanlar dahil her başarılı yenileme bir kredi kullanır. Arşiv sırası tarih sırası değildir. İleride sorguyu istek başına 100 kayıt ve sorgu başına 100 sayfaya genişletmeniz de eksiksiz kapsam veya bütün bir konuşma sağlandığını kanıtlamaz.
Alanlar ve toplamların anlamı için belgelere, maliyet için fiyatlara, hesap yapılandırması için anahtar sayfasına bakın. Herkese açık ve ücretsiz /v1/status yalnızca statik hizmet açıklamasıdır; arşiv erişilebilirliğini sınamaz. Önizlemenin geçmiş kaynağını görünür tutun. Canlı güncelleme, gelecekte aynı kalacak sonuç veya bu az sayıdaki parçadan eksiksiz bir tartışma vaat etmeyin; ekranın iddiası gerçekten alınan kayıtlarla sınırlı kalsın.