sosyal platform api'ları

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

Upload: ahmet-balkan

Post on 29-Nov-2014

3.410 views

Category:

Education


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Sosyal Platform API'ları

SOSYAL PLATFORM API’LERİ

Ön BilgiNeden API Sunulmalı?

Kullanım AlanlarıÖrnek Platform API’lar

OAuthPlatform API Tasarlamak

8 Günah3. Parti Uygulamalar& Sektör

Ahmet Alp Balkanwww.ahmetalpbalkan.com

1

Page 2: Sosyal Platform API'ları

API

• Geliştirici için arayüz.

2

Page 3: Sosyal Platform API'ları

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

Page 4: Sosyal Platform API'ları

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

Page 5: Sosyal Platform API'ları

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

Page 6: Sosyal Platform API'ları

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

Page 7: Sosyal Platform API'ları

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

Page 8: Sosyal Platform API'ları

Google Maps API

• 7.000+ mashup

• Developer key, JS-Server Side

• Taksiyle, foursquare, İBB Trafik…

8

Page 9: Sosyal Platform API'ları

FriendFeed API

• Görülen her veri API üzerinde var.

9

Page 10: Sosyal Platform API'ları

Kullanıcı Yetkilendirme Yöntemleri

• Kötü fikir: Kullanıcı adı-şifre

• Uzak anahtar (remote key)

• Gizli anahtar (secret key)

• OAuth-OpenId

10

Page 11: Sosyal Platform API'ları

OAuth: Sosyal Ağlar için Uygun Yöntem

• 3 aşamalı yetkilendirme

• Access key, Access token, Private key.

11

Page 12: Sosyal Platform API'ları

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

Page 13: Sosyal Platform API'ları

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

Page 14: Sosyal Platform API'ları

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... 1 2

• Kolay kullanılabilmeli (dokümantasyonsuz bile)

• Yanlış kullanılması zor olmalı.

• Hata durumları açıkça belirtilmeli. 14

Page 15: Sosyal Platform API'ları

API Tasarlamak-IV (kullanılabilirlik)

http://myapp.com/getCommentsByUser?user=foo

http://myapp.com/user/foo/comments

• Anlamlı HTTP/1.1 Status Code’lar kullanılmalı• 200 OK• 404 Not Found• 401 Unauthorized• 500 Internal Server Error

• Sıkıştırılmış (minified) ve girintilenmiş (pretty indentation) çıktı seçeneklerini sunulmalı.

15

Page 16: Sosyal Platform API'ları

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ın demolarını içermeli. (API explorer) 1

• Precondition, postcondition’lar varsa belirtilmeli.

16

Page 17: Sosyal Platform API'ları

API Tasarlamak-VI (destek)

• API kullanıcılarının tartışabileceği komüniteler kurulmalı: Google Groups

• 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

Page 18: Sosyal Platform API'ları

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: RWW18

Page 19: Sosyal Platform API'ları

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

Page 20: Sosyal Platform API'ları

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: ChubbyBrain20

Page 21: Sosyal Platform API'ları

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