[caption id=“attachment_1544” align=“alignright” width=“272” caption=“xkcd: Duty Calls”]What do you want me to do?  LEAVE?  Then they’ll keep being wrong![/caption]

API neden önemlidir, nasıl sunulmalıdır? mevzusuna daha önce değinmiştim. Ne yazık ki millet olarak biz Türklerin yarattığı web projelerinde API veya platform sunma alışkanlığı ne yazık ki yok. Bunun birkaç nedeni olabilir:

  • Gerçekten içeriğimiz yok. Sitelerimiz çok basit işler yapıyor ve elimizde ne kullanıcı verisi var, ne de kayda değer bir içerik sağlayabiliyoruz. (en yaygın sebep)

  • Korkuyoruz. Başkaları API’ımızı kullanarak bizim sitemizdeki verileri çalıp kendi çıkarı için kullanabilir ve bizim gücümüzden faydalanabilir. (büyük ihtimalle o kadar kıymetli bir veriniz yoktur ve emin olun iyi bir geliştirici sitenizden o veriyi isterse alır)

  • Tembeliz. Zaten sistem çalışıyor ve potansiyel kullanıcılarımızın %99’u siteyi kullanıyor, paramızı da kazanıyoruz, niye API yapalım ki? (Yukarıda linkini verdiğim sunumdan: Bugün twitter API, twitter’dan çok kullanılıyor!)

  • Cahiliz. Web girişimcilerinin yöneticileri veya bu konuda karar vermesi gereken kişi, yeni nesil web ve mashup kültüründen haberdar değil.

  • Masumuz. API nedir ve neden sunulmalıdır biliyoruz ama elimizdeki veriyi aslında kayda değer değil sanıyoruz. İşte o cesur ve yüz akımız API & platform sunan web girişimlerimiz:

put.io

Bu girişime başlı başına ayrı bir yazı ayırmak gerek. :) Projedeki mühendislik ve işletme ayrı bir konu; put.io tamamen Türk yapımı olmasına rağmen dışarıdan bakıldığında Silikon Vadisi’nden çıkmış müthiş bir girişim izlenimi veriyor. Elbette API sunuyor. Yakın zamanda yayına aldıkları REST API tam teşekküllü ve oldukça başarılı. Hatta Android mobil uygulaması bile geliştirilmiş. :) Şimdilik sadece Python olsa da resmi olarak bir kütüphane ve demo uygulama sunuyor. Kullanıcılar tarafından gönderilen unofficial .NET, Perl, PHP kütüphaneleri de mevcut. Topluluk desteği, sağlam dokümantasyonu ve issue tracker’ıyla alkışı hak ediyor:

http://put.io/service/api

GittiGidiyor

Aslında bir e-ticaret sitesinin API sunması oldukça meşakkatli bir çalışmadır. Örneğin ebay bir çok API sunuyor ve en basitinden Finding API’nin dokümantasyonu bile işin derinliği hakkında bilgi verebilir. GittiGidiyor ise anonim olarak Application Service, Category Service, City Service, Developer Service, Catalog Service, Search Service olarak bir çok API’yi hem REST hem SOAP ile sunuyor. Kurumsal ve çoklu servislerine baktığınızda ise kargodan satışa bir çok API yine devrede. Resmi PHP, Java ve C# kütüphaneleri mevcut. FAQ sayfası ve iletişim formu üzerinden destek gerçekleştiriliyor.

http://dev.gittigidiyor.com/

trcll.im

Shameless self promotion. :P TTech‘te geliştirilen tinyurl.com benzeri URL (link) kısaltma servisi. Şu anda Gezenzi‘nin Twitter gönderilerinde aktif olarak kullanılıyor. Ne desek kendini beğenmişliğe girer, ama sunduğu REST API ile URL kısaltma, kısa URL çözümleme ve kısaltılmış URL’i silme işlemleri mevcut. Deneysel olarak konulan bir PHP kütüphanesi mevcut.

http://trcll.im/api

Karnıyarık

E-ticaret siteleri arasında ürünlerin fiyatlarını karşılaştırma servisi sunan Karnıyarık da güzel bir REST API sunuyor. XML-JSON olarak sunduğu API ile güzel sonuçlara ulaşmanız mümkün. Oldukça cesur bir şekilde servisini geliştiricilere de açan Karnıyarık API pek destek sağlıyor görünmese de başarılı. http://www.karniyarik.com/api.jsp

İzlesene.com

Nokta A.Ş. bir çok web servisi arasından belki de Blogcu’yla beraber en popüleri ve en büyük yerel video ağı İzlesene.com da geliştiricilere video arama, popüler videolar, kategorilerdeki videoları bulma-sıralama gibi hoş özellikler sunuyor. Geliştirilmiş örnek uygulama da var. Kolay anlaşılır REST API dokümantasyononu, bir iletişim formu üzerinden destekleniyor. http://www.izlesene.com/api

Sourberry

ekşi sözlük‘ün radyo ağı olan sourberry’nin sağladığı REST API ile mevcut yayın, çalan şarkı, DJ ve dinleyici sayısı hakkında verilere ulaşabiliyorsunuz. Oldukça sevimli olmuş. www.sourberry.org/api

ek$igato

ekşi sözlük’teki başlıkları takip etme servisi olarak geliştirilen ek$igator‘un sunduğı API ile geliştiriciler isterlerse takip ettikleri başlıklara yeni bir entry girildiğinde haberdar olabiliyor. Alt tarafta sourphp kullanan ek$igator ile bir cool çok uygulama çıkarılabilir :) http://eksigator.com/sayfa/API

Tusul

Digg benzeri bir _social bookmarking _(sosyal imleme) ağı olan Tusul da beta olarak bir REST API sunuyor. Yayımlanan story’ler hakkında bilgilere ulaşabileceğiniz ve kategorilere göre en popüler story’leri alabileceğiniz bir API sunan Tusul’u girişimden ötürü tebrik ediyorum ve ihtiyaç durumunda dokümantasyonu geliştirmesinin güzel olacağını ekliyorum. :) www.tusul.com/developer/

Diyanet Ýþleri Baþkanlýðý - Namaz Vakti Api

Türkiyede _widget _ve _embedding _sunan bir çok servis var ama buna API demek doğru olmaz. Diyanet İşleri Başkanlığı’nın sunduğu widget ile sitenize namaz vakitleri ekleyebiliyorsunuz. “You are doing it wrong” diyerek yine de girişimi tebrik edelim. www.diyanet.gov.tr/turkish/namaz.asp Not: Başlığı siteden aldım ve bilerek dokunmadım. :)

Gezenzi

İlk (ve galiba tek) foursquare benzeri lokasyon bazlı yerli sosyal ağ, Turkcell’in ürünü olan Gezenzi de yakında API sunuyor olacak. Detaylar için www.gezenzi.com/minilife/API

Düzeltme: Gezenzi API yayına girmiş. OAuth kullanıyor fakat şimdilik kullandığı OAuth implementasyonu hem 1.0 versiyonunun hem 2.0 versiyonunun arasında kalmış ve standartlardan çok uzak bir durumda. Kullanıcı doğrulama için özel implementasyon hazırlamanız şart. Bu kısımdan pek özenle hazırlanmadığı anlaşılıyor. API’nin kalan kısmı ise güzel bilgiler sunuyor ve sistemle uyumlu. Google Code üzerinde derli toplu doc sunmaları da artı puanı hak ediyor. http://code.google.com/p/gezenzi

Yazının hazırlanmasında emeği geçen tüm arkadaşlara, özellikle FriendFeed’den yardımcı olanlara teşekkürler. ;) Berker‘e ayrıca teşekkürler.

Mutlaka atladıklarımız olmuştur, yazının altına yorum düşerseniz güncelliyor olacağım. Profesyonel ve açık biçimde api sunmayanlar ve  işi gereği api sunmak ‘zorunda’ olanları (örn. sms bayileri vb.) listeye dahil etmeyelim. :)