Yeni bir şey öğrenirken en büyük engel genellikle konunun kendisi değil, başlamadan önce halledilmesi gereken işlerdir. Hesap açmak, anahtar üretmek, faturalandırma ayarlamak, dokümantasyonda kimlik doğrulama bölümünü okumak — daha ilk isteği atmadan yarım saat geçer.
Bu yazıdaki API'lerin ortak özelliği tam olarak bunu ortadan kaldırmalarıdır. Hiçbiri anahtar istemez. Adres çubuğuna yazarsınız, JSON gelir. Bir arayüz kütüphanesi denemek, asenkron kod yazmayı öğrenmek veya bir fikri hızlıca test etmek için bundan iyi zemin yoktur.
Hızlı karşılaştırma
| API | İçerik | Kimlik doğrulama | Filtreleme | Dil |
|---|---|---|---|---|
| JokeAPI | Şaka, çeşitli kategoriler | Gerekmiyor | Kategori ve içerik filtresi | Çok dilli |
| icanhazdadjoke | Kelime oyunu tarzı şakalar | Gerekmiyor | Arama | İngilizce |
| ChuckNorris.io | Tek satırlık espriler | Gerekmiyor | Kategori | İngilizce |
| Open Trivia DB | Çoktan seçmeli sorular | Gerekmiyor | Kategori, zorluk, tip | İngilizce |
| Advice Slip | Kısa öğüt cümleleri | Gerekmiyor | Arama | İngilizce |
| kanye.rest | Tek alıntı | Gerekmiyor | Yok | İngilizce |
JokeAPI — en yapılandırılabilir olanı
JokeAPI, bu listedeki en olgun servistir. Kategori seçebilir, format belirleyebilir, tek satırlık veya kurulum-punchline yapısındaki şakaları ayırabilirsiniz.
En önemli özelliği içerik filtreleme bayraklarıdır. Belirli içerik türlerini isteğinizde hariç tutabilirsiniz. Kullanıcıya içerik gösteren herhangi bir uygulama yapıyorsanız bu bayrakları kullanmak tercih değil, gerekliliktir.
Filtre uyguladığınızda bile topluluk kaynaklı içerikte beklenmedik sonuçlar çıkabileceğini varsayın. Uygulamanız halka açıksa, gelen içeriği doğrudan yayımlamak yerine bir kontrol katmanından geçirmek veya kullanıcıya bildirim mekanizması sunmak makul bir önlemdir.
Çok dilli desteği vardır ancak dil kapsamı eşit değildir. İngilizce havuzu diğer dillerden belirgin biçimde geniştir. Türkçe içerik beklentisiyle yola çıkmayın.
icanhazdadjoke, ChuckNorris.io ve Advice Slip
Bu üçü aynı kategoride yer alır: tek bir işi yapan, çok basit ve çok hızlı servisler.
icanhazdadjoke, kelime oyunu tarzı şakalar sunar. Öğretici değeri olan bir ayrıntısı vardır: yanıt formatını Accept başlığıyla belirlersiniz. Aynı adres, hangi başlığı gönderdiğinize göre düz metin, JSON veya görsel döndürür. İçerik müzakeresi kavramını öğrenmek için bundan temiz bir örnek zor bulunur.
ChuckNorris.io, kategorilere ayrılmış tek satırlık espriler sunar. Rastgele içerik, kategoriye göre içerik ve arama uç noktaları vardır — bir listeleme ve arama arayüzü kurmak için yeterli çeşitlilik.
Advice Slip, kısa öğüt cümleleri döndürür. Rastgele bir cümle veya anahtar kelimeye göre arama yapabilirsiniz. Widget, ekran koruyucu veya günlük bildirim tarzı projeler için uygundur.
kanye.rest ise mümkün olan en basit API'dir: tek uç nokta, tek alan. Bir API'nin ne kadar sade olabileceğini göstermesi dışında bir iddiası yoktur ve "ilk fetch çağrımı yazıyorum" anı için tam ölçüsündedir.
Open Trivia DB — üzerine gerçekten ürün kurulabilen
Open Trivia DB, listedeki diğerlerinden ayrılır çünkü üzerine tamamlanmış bir oyun kurulabilir.
Çoktan seçmeli sorular sunar; kategori, zorluk seviyesi ve soru tipi seçebilirsiniz. Bir quiz uygulamasının ihtiyaç duyduğu her şey burada hazırdır.
İki özelliği gözden kaçar ve ikisi de kaliteyi doğrudan etkiler.
Birincisi oturum jetonudur. Jeton alıp isteklerinizde kullandığınızda, aynı sorunun oturum içinde tekrar gelmesi engellenir. Bunu kullanmayan quiz uygulamalarında oyuncu üçüncü turda aynı soruyu görür ve bu, ürünü anında ucuz hissettirir. Tek satırlık bir değişiklikle çözülür.
İkincisi kodlama seçeneğidir. Soru metinleri varsayılan olarak HTML varlıkları içerir; kesme işaretleri ve tırnaklar ham haliyle ekranda " gibi görünür. İstekte kodlama parametresi belirterek veya istemcide çözerek bunu düzeltmelisiniz.
Servis istekler arasında kısa bir bekleme uygular. Her soru için ayrı istek atmak yerine, tur başında toplu soru çekip yerelde saklayın — hem hızlı hem de doğru kullanım budur.
Türkçe içerik meselesi
Bu bölüm Türkiye'den geliştirenler için önemlidir ve cevabı net: bu API'lerin hiçbiri güvenilir bir Türkçe içerik kaynağı değildir.
JokeAPI çok dillidir ama Türkçe havuzu sınırlıdır. Diğerleri tamamen İngilizcedir. Türkçe arayüzlü bir eğlence uygulaması kuruyorsanız içerik sorununu kendiniz çözmeniz gerekir.
Üç yaklaşım işe yarar ve seçim projenin ciddiyetine bağlıdır.
Kendi içerik havuzunuzu oluşturmak. Bir quiz veya şaka uygulaması için birkaç yüz kalemlik bir JSON dosyası, herhangi bir API'den daha iyi sonuç verir. Kaliteyi siz kontrol edersiniz, ağ isteği yoktur, uygunsuz içerik riski yoktur. Küçük ölçekte bu neredeyse her zaman doğru cevaptır.
Çeviri katmanı eklemek. İngilizce içeriği çevirip göstermek teknik olarak mümkündür ama espri ve kelime oyunu çeviride en çok kaybeden içerik türüdür. Bir kelime oyunu çevrildiğinde genellikle anlamsızlaşır. Bilgi soruları çeviriye daha dayanıklıdır. Çeviri seçenekleri için ücretsiz çeviri API'leri yazısına bakabilirsiniz.
Dil modeliyle üretmek. Türkçe soru veya içerik üretmek için dil modeli kullanmak mümkündür. Maliyet ve tutarlılık açısından, her istekte üretmek yerine önceden bir havuz oluşturup gözden geçirmek daha mantıklıdır. Seçenekler için ücretsiz yapay zeka API'leri yazısına bakın.
Bu API'lerle çalışırken öğrenilecekler
Basit oldukları için gözden kaçar, ama bu servisler gerçek mühendislik alışkanlıklarını denemek için iyi zemindir.
Hata durumunu ele almak. Servis yanıt vermediğinde arayüzünüz ne gösterecek? Boş ekran mı, önceki içerik mi, açıklayıcı bir mesaj mı? Bu kararı basit bir projede vermek, karmaşık bir projede vermekten kolaydır ve alışkanlık kazandırır.
Yükleniyor durumu. İçerik gelene kadar geçen sürede ne görünecek? Sıçrayan bir düzen yerine yer tutucu göstermek, kullanıcı deneyimi açısından hissedilir fark yaratır.
Cache. Aynı içeriği tekrar istemek gerekli mi? Kullanıcı geri gittiğinde yeniden istek atılıyor mu? Bu soruların cevabı küçük projede de aynıdır.
Oran sınırına saygı. Bu servislerin tamamı gönüllü emekle veya sınırlı kaynakla ayakta durur. Döngüde istek atan bir betik yazmak kolaydır; yazmamak bir tercihtir.
Sonraki adım
Bu API'lerle temel akışı kurduktan sonra doğal ilerleme, aynı arayüzü gerçek bir problem çözen veriye bağlamaktır.
Hava durumu iyi bir sonraki duraktır: veri gerçektir, koordinat ve zaman kavramları devreye girer, cache anlamlı hale gelir. Ücretsiz hava durumu API'leri yazısı seçenekleri karşılaştırıyor.
Döviz kuru bir diğer iyi adımdır; sayısal doğruluk, yuvarlama ve geçmiş veri kavramlarını öğretir. Ücretsiz döviz API'si ile kur çevirici yazısında uçtan uca bir örnek var.
Bu yazıdaki erişim bilgileri yayın tarihindeki resmi dokümantasyona dayanır. Ücretsiz ve gönüllü yürütülen servislerde koşullar değişebilir; ticari kullanımdan önce güncel sayfaları kontrol edin.
İlgili API Deposu kayıtları
Kaynaklar
Sık Sorulan Sorular
›Bu API'ler gerçekten anahtarsız mı?
Evet, bu listedeki servislerin tamamı kayıt veya anahtar olmadan kullanılabilir. Bu, onları öğrenme ve prototip projeleri için en hızlı başlangıç noktası yapar.
›Türkçe içerik sunan var mı?
JokeAPI birden fazla dili destekler ancak dil kapsamı içeriğe göre değişir ve Türkçe içerik havuzu İngilizce kadar geniş değildir. Diğerleri İngilizce içerik sunar. Türkçe bir uygulama için kendi içerik havuzunuzu oluşturmanız gerekir.
›Uygunsuz içerik gelme riski var mı?
JokeAPI içerik filtreleme bayrakları sunar ve bunları kullanmak zorunludur. Filtre uygulasanız bile topluluk kaynaklı içerikte beklenmedik sonuçlar çıkabilir; kullanıcıya doğrudan gösteriyorsanız ek bir kontrol katmanı düşünün.
›Ticari projede kullanılabilir mi?
Her birinin koşulu farklıdır ve içerik telifi ayrı bir konudur. Bu servisler ağırlıkla öğrenme ve hobi kullanımı için sunulur; gelir üreten bir üründe kullanmadan önce koşulları okuyun.
›Bir sonraki adım ne olmalı?
Bu API'lerle temel akışı öğrendikten sonra, aynı arayüzü gerçek veri sunan bir kaynağa bağlamak iyi bir ilerlemedir. Hava durumu, döviz veya katalog verisi, aynı becerileri gerçek bir problem üzerinde kullanmanızı sağlar.