API Nedir? Ne İşe Yarar? Örneklerle İnceleyelim

By -

API Nedir?

API (Application Programming Interface), bir uygulamaya ait yeteneklerin, başka bir uygulamada da kullanılabilmesi için, yeteneklerini paylaşan uygulamanın sağladığı arayüzdür.

Basitçe API (Application Programming Interface) kavramı

Basitçe API (Application Programming Interface) kavramı

Ne??! Tam anlamadım…

Basitçe, A uygulamasının özelliklerini B uygulamasında da kullanabilmemizi sağlayan yapıya API diyoruz.

Örneğin, ABC uygulamasından XYZ uygulamasına ait API’yi çağırarak, XYZ’nin API’sinde desteklenen tüm işlemleri ABC uygulamasında da gerçekleştirebiliriz. Yani XYZ uygulamasını açıp kullanmadan ABC uygulamasında da XYZ uygulamasına ait işlemleri gerçekleştirebilir hale geldik!

Gerçek bir örnek ver de API nedir tam anlayalım! XYZ, ABC kesmedi beni…

Hay hay!

Örneğin, Geliştirdiğimiz bir projede Twitter API’yi çağırarak, Twitter’ın bize izin verdiği (tweet atma, hesap takip etme, vb.) işlemleri, API yetkimiz olan Twitter hesaplarında, kendi uygulamamız üzerinden de gerçekleştirebiliriz.

Twitter API, uygulama geliştiriciler arasındaki popülerliği koruyor...

Twitter API, uygulama geliştiriciler arasındaki popülerliği koruyor…
API ile erişim yetkimizin olduğu 100 hesabın aynı anda “Merhaba Dünya! Nasılsın iyi misin? İyisindir inşallah… tweet’ini atmasını sağlayabiliriz!

Çılgınca, değil mi?

Farklı bir örnek olarak, WordPress altyapısını kullanan bir blog’a sahipsek, WordPress API’yi çağırarak, gerekli API yetkileri sağlandığı taktirde, blog’umuza kayıtlı kullanıcıların listesini çekebilir, yeni bir yazı yayınlayabilir veya bir yazıya yorum yapabiliriz.

Tüm bu örneklerde görüldüğü gibi, API’si olan uygulamaları, kendi uygulamamız içinden çağırarak, asıl uygulamaya ait yetenekleri kullanmış olduk.

Bir de örnek proje yap da tam olarak anlayalım API nedir ne değildir…

O kadar anlattık madem, örnek ufak bir proje de yapalım.

Öncelikle https://apps.twitter.com/app/new adresine giderek yeni bir uygulama oluşturuyoruz:

API nedir anlamak için ufak bir test uygulaması oluşturuyoruz

API nedir anlamak için ufak bir test uygulaması oluşturuyoruz

Uygulamamı oluşturduktan sonra “Keys and Access Tokens” sekmesine tıklayarak API’ye erişeceğim esnada kullanacağım Koddit-Test uygulamasına ait key bilgilerini öğreniyorum. (Consumer Key (API Key) ve Consumer Secret (API Secret))

Bu bilgiyi elde ettikten sonra tweet atacağım hesaplarda bu API’nin erişimine dair yetki vermem gerekiyor. Bunun için kendi Twitter hesabımda deneme yapabilmek için, kendi hesabıma ait Koddit-Test uygulamasına gereken izni veren Access Token’ı üretiyorum:

acc

Oluşturma işlemi ertesi Koddit-Test uygulamasına izin veren hesabıma ait Access Token ve Access Token Secret değerlerini öğreniyorum. Ayrıca https://twitter.com/settings/applications adresine gittiğimde Koddit-Test uygulamasına izin verilmiş olduğunu da görüyorum.

Ardından basit bir C# konsol uygulaması oluşturup, Linq 2 Twitter kütüphanesini projeme ekliyorum. (İlla ki bir kütüphane kullanmak durumunda değilsiniz ancak işler kolaylaşsın diye ben bu yolu tercih ettim. Twitter’ın alakalı web servisini çağırarak da işinizi görebilirsiniz.)

using System;
using LinqToTwitter;

namespace Koddit.Twitter.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            //Yazıda bahsettiğim key ve token bilgilerini giriyorum
            var singleUserAuthorizer = new SingleUserAuthorizer
            {
                CredentialStore = new InMemoryCredentialStore
                {
                    ConsumerKey = "Consumer Key (API Key) bilgisini giriyoruz",
                    ConsumerSecret = "Consumer Secret (API Secret) bilgisini giriyoruz",
                    OAuthToken = "İşlemi yaptığımız hesaba ait Access Token bilgisi",
                    OAuthTokenSecret = "Aynı hesabın Access Token Secret bilgisi"
                }
            };

            //Twitter ile işlemleri gerçekleştirecek ana objemi yarattım
            TwitterContext twitterContext = new TwitterContext(singleUserAuthorizer);

            //Atılacak tweet kullanıcıdan alınır
            Console.WriteLine("Atacağınız tweet'i girin:");
            string tweet = Console.ReadLine();

            //Konsol uygulaması olduğu için asenkron işlemi awaiter ile beklemeye aldım
            //Şimdilik API mantığına odaklanabilirsiniz, bu kısma takılmanıza gerek yok
            var tweetAsync = twitterContext.TweetAsync(tweet).GetAwaiter().GetResult();

            //İşlem tamamlanınca kullanıcı bilgilendirilir
            Console.WriteLine(
                "{0} isimli kullanıcıya ait {1} hesabından şu tweet gönderildi:\n{2}",
                tweetAsync.User.Name, tweetAsync.User.ScreenNameResponse, tweetAsync.Text);
            Console.ReadLine();
        }
    }
}
Uygulamayı çalıştırıp tweet’imizin gidip gitmediğini kontrol ediyoruz...

Uygulamayı çalıştırıp tweet’imizin gidip gitmediğini kontrol ediyoruz…
Gerçekten de gitmiş, süper!

Gerçekten de gitmiş, süper!

Sonuç olarak…

Hayatımızı kolaylaştıran API kavramı ile, uygulamamıza takla attırmadan, bu arayüzü sağlayan farklı uygulamalarla kolayca haberleşmenin tadını çıkartıyoruz.