1. SOSYAL PLATFORM API’LERİ Ön Bilgi Neden API Sunulmalı? Kullanım Alanları Örnek Platform API’lar OAuth Platform API Tasarlamak 8 Günah 3. Parti Uygulamalar& Sektör Ahmet Alp Balkan www.ahmetalpbalkan.com 1
3. Neden API Sunulmalı Geliştirici komünitesini uygulama geliştirmeye teşvik Uygulamanın farklı platformlarda sunulabilmesi için esnek bir yapı API ile düşünmenin getirdiği kod kalitesi İnsani test gücü 3
4. Kullanım Alanları Servislerin web-mobil istemcilerini geliştirmek Üçüncü parti uygulamalara yol açmak Açık verinin sunulabilirliğini sağlamak Projeler arası entegrasyon ve ortaklarla iş birliği 4
5. Twitter API Tweet yollama, silme, feed okuma, anlık-günlük trendler Onlarca mobil ve masaüstü client Rate limiting,Whitelisting Twitpic,@semwc, Twitter-Archive Kaynak: cbinsights.com 5
6. Facebook API Bir çok işlem gerçekleştirilebiliyor Karmaşık dokümantasyon; iyi komünite desteği Sık sık devre dışı kalıyor – ilginç bug’lar var Facebook Connect OAuth 2.0 Verimli FOAF (friend-of-a-friend) verisi IFrame içinde uygulama çalıştırma <-> FBML Kaynak: cbinsights.com 6
7. YouTube API Video arama, yükleme, playlist işlemleri, video player API. 500+ mashup Fizy, playalike, Celebrity Sexy Video Finder Resmî Java, .NET, PHP, Python and Objective-C Kütüphaneleri Developer Key 7
8. Google Maps API 7.000+ mashup Developer key, JS-Server Side Taksiyle, foursquare, İBB Trafik… … 8
11. OAuth: Sosyal Ağlar için Uygun Yöntem 3 aşamalı yetkilendirme Access key, Access token, Private key. 11
12. API Tasarlamak-I API içeriği kararlaştırılmalı (use-case) Convenient yöntemler takip edilmeli. Mutlaka JSON ve XML sunuluyor olmalı. Mümkünse DTD tanımına sahip olmalı. RESTful API olmalı. (SOAP vb. değil!) API sorgu frekansı takip edilmeli Güvenli yetkilendirme (OAuth) yapılmalı. 12
13. API Tasarlamak-II Backwards-compatibility sunulmalı. Yeni API sürümü çıksa dahi eskisi desteklenmeli. You can always add,but you can never remove.1 Gereksinimleri karşılamak için yeterince güçlü olmalı. Uygulamayla birlikte geliştirilmeli. Sunulan veriler OOP paradigmasındaki Entity’ler gibi ve ilişkisel sunulmalı. 13
14. API Tasarlamak-III (dokümantasyon) Sınıf ve metodlar tutarlı isimlendirilmeli. İsimlendirme zorluğu = kötüye işaret1 Parametre listesi tüm detaylarıyla yazılmalı Parametre girdi biçimleri katı (strict) olarak belirtilmeli. RFC’lerle, Reg. Ex.’lerle... 12 Kolay kullanılabilmeli (dokümantasyonsuz bile) Yanlış kullanılması zor olmalı. Hata durumları açıkça belirtilmeli. 14
15. API Tasarlamak-IV (kullanılabilirlik) http://myapp.com/getCommentsByUser?user=foo http://myapp.com/user/foo/comments Anlamlı HTTP/1.1 StatusCode’lar kullanılmalı 200 OK 404 Not Found 401 Unauthorized 500 Internal Server Error Sıkıştırılmış (minified) ve girintilenmiş (prettyindentation) çıktı seçeneklerini sunulmalı. 15
16. API Tasarlamak-V (dokümantasyon) Hedef kitle tarafından anlaşılabilir olmalı. Örnek kullanımlar içermeli. Olası örnek yanıtlar içermeli. Mümkünse metodlarındemolarını içermeli. (API explorer) 1 Precondition, postcondition’lar varsa belirtilmeli. 16
17. API Tasarlamak-VI (destek) API kullanıcılarının tartışabileceği komüniteler kurulmalı: GoogleGroups API önerileri-şikayetleri için bir e-mail. Güncellemeler ürün blogunda yayımlanmalı. Uygulama geliştirmeye teşvik edici örnek uygulama ve kod parçaları. Resmi ve unofficial hazır kütüphaneler 17
18. 8 Günah Sürpriz hataları idare edememek Kötü komünite yönetimi API’yi subdomain altında yayımlamamak. Real-word testlerden yoksun olmak. Rate limit uygulamamak (+status page) Kötü hata mesajları Black-box testleri yapmamak API’yi ana faaliyet alanı olarak görmemek. Kaynak: RWW 18
19. 3. Parti Uygulamalar Her zaman bir ayağı çukurda! FriendFeed: 60 servisten aggregation Platformun potansiyelini arkasına alır Platforma güç ve renk katar Twitter API > Twitter.com 19
21. Mash-up Pazarı “Are You Interested” (Facebook) 2008’de $1.5M kâr. 13M kullanıcı. Zynga (Facebook’tan) $40M kâr(2009) “Friends For Sale” $4M yatırım Facebook Platform uygulamaları 2009’da toplam $500M kâr. 21
22. Further Reading How to design Good APIs and Why they Matter (Joshua Bloch @ Google) Why API As A Strategy? Creating a new API [ 1 - 2 ] connect.microsoft.com How to Add an API to your Web Service www.3scale.net API management tool ($) 22