SlideShare a Scribd company logo
1 of 22
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
API Geliştirici için arayüz. 2
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
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
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
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
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
Google Maps API 7.000+ mashup Developer key, JS-Server Side Taksiyle, foursquare, İBB Trafik… … 8
FriendFeed API Görülen her veri API üzerinde var. 9
Kullanıcı Yetkilendirme Yöntemleri Kötü fikir: Kullanıcı adı-şifre Uzak anahtar (remote key) Gizli anahtar (secret key) OAuth-OpenId 10
OAuth: Sosyal Ağlar için Uygun Yöntem 3 aşamalı yetkilendirme Access key, Access token, Private key. 11
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
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
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
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
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
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
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
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
Mash-up Pazarı Twitter odaklı uygulamalara 2008’de $19M, 2009’da $23M yatırım. Bit.ly: URL kısaltma $2M yatırım Tipjoy: Batık sosyal payment: $2M yatırım Tweetdeck:Gelişmiş twitter client’ı $3.5M yatırım Seesmic: Facebook, Twitter vb. client'$12M yatırım StockTwits: Finans takibi, tartışması: $4.5M TweetPhoto: $2.6M yatırım TwitPic: $10M’ı reddetti, $1.5m yıllık kâr. Kaynak: ChubbyBrain 20
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
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

More Related Content

Similar to Sosyal Platform API'ları

Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)windowsblogu
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiBora Yalcin
 
Python sitesi
Python sitesiPython sitesi
Python sitesisersld98
 
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web GeliştiriciliğiBurak Oğuz
 
Php odev-sitesi
Php odev-sitesiPhp odev-sitesi
Php odev-sitesisersld89
 
Php kursu-fatih
Php kursu-fatihPhp kursu-fatih
Php kursu-fatihsersld88
 
Php sitesi
Php sitesiPhp sitesi
Php sitesisersld89
 
Php egitimi-eyup
Php egitimi-eyupPhp egitimi-eyup
Php egitimi-eyupsersld89
 
Php kursu-kartal
Php kursu-kartalPhp kursu-kartal
Php kursu-kartalsersld88
 
Php egitim-cd-si
Php egitim-cd-siPhp egitim-cd-si
Php egitim-cd-sisersld89
 
Php en-iyi-kursu
Php en-iyi-kursuPhp en-iyi-kursu
Php en-iyi-kursusersld89
 
Php teknigi
Php teknigiPhp teknigi
Php teknigisersld89
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Evren Ayan
 
Php zirvesi
Php zirvesiPhp zirvesi
Php zirvesisersld89
 

Similar to Sosyal Platform API'ları (20)

Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)Application Compatibility (Uygulama Uyumluluğu)
Application Compatibility (Uygulama Uyumluluğu)
 
WP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin GeleceğiWP REST API ve WordPress Ekosisteminin Geleceği
WP REST API ve WordPress Ekosisteminin Geleceği
 
Php 2013
Php 2013Php 2013
Php 2013
 
Php 2015
Php 2015Php 2015
Php 2015
 
Python sitesi
Python sitesiPython sitesi
Python sitesi
 
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
2010 Kocaeli Linux Günleri - Linux Web Geliştiriciliği
 
Php testi
Php testiPhp testi
Php testi
 
Php 2019
Php 2019Php 2019
Php 2019
 
Php ornek
Php ornekPhp ornek
Php ornek
 
Php odev-sitesi
Php odev-sitesiPhp odev-sitesi
Php odev-sitesi
 
Php kursu-fatih
Php kursu-fatihPhp kursu-fatih
Php kursu-fatih
 
Php sitesi
Php sitesiPhp sitesi
Php sitesi
 
Php egitimi-eyup
Php egitimi-eyupPhp egitimi-eyup
Php egitimi-eyup
 
Php kursu-kartal
Php kursu-kartalPhp kursu-kartal
Php kursu-kartal
 
Php egitim-cd-si
Php egitim-cd-siPhp egitim-cd-si
Php egitim-cd-si
 
Php en-iyi-kursu
Php en-iyi-kursuPhp en-iyi-kursu
Php en-iyi-kursu
 
Php teknigi
Php teknigiPhp teknigi
Php teknigi
 
Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010Yazılım Geliştiriciler İçin Sharepoint 2010
Yazılım Geliştiriciler İçin Sharepoint 2010
 
sunu (Asp.net -1)
sunu (Asp.net -1)sunu (Asp.net -1)
sunu (Asp.net -1)
 
Php zirvesi
Php zirvesiPhp zirvesi
Php zirvesi
 

More from Ahmet Balkan (12)

Ch11lect1 ud
Ch11lect1 udCh11lect1 ud
Ch11lect1 ud
 
Ch10lect2 ud
Ch10lect2 udCh10lect2 ud
Ch10lect2 ud
 
Ch10lect1 ud
Ch10lect1 udCh10lect1 ud
Ch10lect1 ud
 
Ch09lect2 ud
Ch09lect2 udCh09lect2 ud
Ch09lect2 ud
 
Ch08lect2 ud
Ch08lect2 udCh08lect2 ud
Ch08lect2 ud
 
Ch08lect1 ud
Ch08lect1 udCh08lect1 ud
Ch08lect1 ud
 
Ch06lect1 ud
Ch06lect1 udCh06lect1 ud
Ch06lect1 ud
 
Ch05lect2 ud
Ch05lect2 udCh05lect2 ud
Ch05lect2 ud
 
Ch05lect1 ud
Ch05lect1 udCh05lect1 ud
Ch05lect1 ud
 
Ch02lect1 ud
Ch02lect1 udCh02lect1 ud
Ch02lect1 ud
 
Ch11lect2 ud
Ch11lect2 udCh11lect2 ud
Ch11lect2 ud
 
NoSQL Sunumu
NoSQL SunumuNoSQL Sunumu
NoSQL Sunumu
 

Sosyal Platform API'ları

  • 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
  • 9. FriendFeed API Görülen her veri API üzerinde var. 9
  • 10. Kullanıcı Yetkilendirme Yöntemleri Kötü fikir: Kullanıcı adı-şifre Uzak anahtar (remote key) Gizli anahtar (secret key) OAuth-OpenId 10
  • 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
  • 20. Mash-up Pazarı Twitter odaklı uygulamalara 2008’de $19M, 2009’da $23M yatırım. Bit.ly: URL kısaltma $2M yatırım Tipjoy: Batık sosyal payment: $2M yatırım Tweetdeck:Gelişmiş twitter client’ı $3.5M yatırım Seesmic: Facebook, Twitter vb. client'$12M yatırım StockTwits: Finans takibi, tartışması: $4.5M TweetPhoto: $2.6M yatırım TwitPic: $10M’ı reddetti, $1.5m yıllık kâr. Kaynak: ChubbyBrain 20
  • 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