SOSYAL PLATFORM API’LERİ<br />Ön Bilgi<br />Neden API Sunulmalı?<br />Kullanım Alanları<br />Örnek Platform API’lar<br />O...
API<br />Geliştirici için arayüz.<br />2<br />
Neden API Sunulmalı<br />Geliştirici komünitesini uygulama geliştirmeye teşvik<br />Uygulamanın farklı platformlarda sunul...
Kullanım Alanları<br />Servislerin web-mobil istemcilerini geliştirmek<br />Üçüncü parti uygulamalara yol açmak<br />Açık ...
Twitter API<br />Tweet yollama, silme, feed okuma, anlık-günlük trendler<br />Onlarca mobil ve masaüstü client<br />Rate l...
Facebook API<br />Bir çok işlem gerçekleştirilebiliyor<br />Karmaşık dokümantasyon; iyi komünite desteği<br />Sık sık devr...
YouTube API<br />Video arama, yükleme, playlist işlemleri, video player API.<br />500+ mashup<br />Fizy, playalike, Celebr...
Google Maps API<br />7.000+ mashup<br />Developer key, JS-Server Side<br />Taksiyle, foursquare, İBB Trafik…<br />…<br />8...
FriendFeed API<br />Görülen her veri API üzerinde var.<br />9<br />
Kullanıcı Yetkilendirme Yöntemleri<br />Kötü fikir: Kullanıcı adı-şifre<br />Uzak anahtar (remote key)<br />Gizli anahtar ...
OAuth: Sosyal Ağlar için Uygun Yöntem<br />3 aşamalı yetkilendirme<br />Access key, Access token, Private key.<br />11<br />
API Tasarlamak-I<br />API içeriği kararlaştırılmalı (use-case)<br />Convenient yöntemler takip edilmeli.<br />Mutlaka JSON...
API Tasarlamak-II<br />Backwards-compatibility sunulmalı.<br />	Yeni API sürümü çıksa dahi eskisi desteklenmeli.<br />You ...
API Tasarlamak-III (dokümantasyon)<br />Sınıf ve metodlar tutarlı isimlendirilmeli.<br />İsimlendirme zorluğu = kötüye işa...
API Tasarlamak-IV (kullanılabilirlik)<br />http://myapp.com/getCommentsByUser?user=foo<br />	http://myapp.com/user/foo/com...
API Tasarlamak-V (dokümantasyon)<br />Hedef kitle tarafından anlaşılabilir olmalı.<br />Örnek kullanımlar içermeli.<br />O...
API Tasarlamak-VI (destek)<br />API kullanıcılarının tartışabileceği komüniteler kurulmalı: GoogleGroups<br />API öneriler...
8 Günah<br />Sürpriz hataları idare edememek<br />Kötü komünite yönetimi<br />API’yi subdomain altında yayımlamamak.<br />...
3. Parti Uygulamalar<br />Her zaman bir ayağı çukurda!<br />FriendFeed: 60 servisten aggregation<br />Platformun potansiye...
Mash-up Pazarı<br />Twitter odaklı uygulamalara 2008’de $19M, 2009’da $23M yatırım.<br />Bit.ly: URL kısaltma $2M yatırım<...
Mash-up Pazarı<br />“Are You Interested” (Facebook) 2008’de $1.5M kâr. 13M kullanıcı.<br />Zynga (Facebook’tan) $40M kâr(2...
Further Reading<br />How to design Good APIs and Why they Matter (Joshua Bloch @ Google)<br />Why API As A Strategy?<br />...
Upcoming SlideShare
Loading in …5
×

Sosyal Platform API'ları

3,181 views

Published on

Published in: Education
  • Be the first to comment

Sosyal Platform API'ları

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

×