API desteği nedir. API'ler nedir ve ne içindir? Belirli bir süre için tamamlanmış siparişlerin listesini alma isteğine bir örnek

  • 03.11.2019

Kum havuzu

arkadaş 26 Kasım 2012 01:59

API nedir

  • Kereste odası *

Selamlar!
Bu yazımızda API'nin ne olduğuna, nerede, nasıl ve ne için kullanıldığına bakacağız. API'nin web geliştirmenize nasıl uygulanabileceğine ve bir web programcısının ömrünü nasıl basitleştirebileceğine de bakacağız.

Öyleyse tanımla başlayalım. API (Uygulama Programlama Arayüzü), bir programlama arayüzü, uygulamalar oluşturmak için bir arayüzdür. Daha anlaşılır bir dille API, bir programcının ömrünü basitleştirmek için hazır bir koddur. API, bir programcının hazır kod (örneğin işlevler) kullanarak bir uygulama yazma görevini gerçekten kolaylaştırabilmesi için oluşturulmuştur. JavaScript ile yazılmış iyi bilinen jQuery de bir çeşit API'dir. Bu özel örneği ele alırsak, jQuery kod yazmayı çok daha kolay hale getirir. Sıradan JavaScript araçlarıyla 30 satırda yapılabilecekler 5-6'da jQuery üzerinden yazılır. API'ye genel olarak bakarsak, geliştirme için çözümleri temsil eden birçok hizmet bulabilirsiniz. Bugün en ünlüsü, yaklaşık elli farklı API sağlayan code.google.com hizmetidir! Bu, Android uygulamaları oluşturmak için bir arayüz ve AJAX ile çalışmak için çeşitli API'ler ve beğeninize göre kolayca özelleştirebileceğiniz çeşitli uygulama API'leridir.

Sonuçta, kendi elinizle kod yazmak mantıklı mı? Neden zaten yaratılmış olan üzerinde çalışalım? Web geliştirmede ücretsiz çözümlerden (ve aslında ücretsiz yardımdan) vazgeçmek mantıklı mı? Tüm bu sorulara “HAYIR” yanıtı verdiyseniz, API'nin özünü anladığınızı varsayın.

Ama ben de rezervasyon yaptırmak istiyorum. Acemi geliştiriciler, gelecekte gerçek görevle başa çıkamayacakları için yarı bitmiş çözümler KULLANMAMALIDIR. Bu nedenle, yeni başlayan bir web programcısıysanız, yarı bitmiş ürünler kullanmayın! Kendi kafanızla düşünmeyi öğrenin, programlamanın özünü anlamak için çeşitli algoritmalar oluşturun. Ben de şimdiden herkese hitap ederek söylüyorum ki API hazır çözümler değil, projelerinizi oluşturmak için bir ortam, bir arayüz. Dükkandan dondurulmuş hamburger yemiyorsun, değil mi? Önce onları kızartırsın, değil mi? Bu benzetme, API'nin özü hakkında çok açıktır.

Genel olarak size API nedir, nerede ve nasıl kullanılır, en önemli şeyin ne için olduğunu anlattım. Size web programlama konusunda keyifli bir çalışma ve onun her zamankinden daha büyük derinliklerini kavramanızı dilerim!

Etiketler: API

Bu makale, yazarı henüz topluluğun tam üyesi olmadığı için yoruma tabi değildir. Yazarla ancak aldıktan sonra iletişime geçebileceksiniz.

Wikipedia'dan tanımı gereği, bir API, harici yazılım ürünlerinde kullanılmak üzere bir uygulama (kütüphane, hizmet) tarafından sağlanan hazır sınıflar, prosedürler, işlevler, yapılar ve sabitler kümesidir. Programcılar tarafından her türlü uygulamayı yazmak için kullanılır.

Ancak Wikipedia'da pek çok kişi tarafından anlaşılamadığı için, API'lerin ne olduğunu ve genellikle ne için kullanıldığını ve nasıl kullanıldığını parmak uçlarında açıklamaya çalışacağım.

API'ler tamamen farklıdır, ancak örnek olarak, bir mağaza zincirimizin ve yalnızca bir ortak veritabanımızın olduğu bir durumu seçtim. Bir ortaklık programına sahip olduğunuzu düşünün. Bağlı kuruluş programı şu prensibe göre çalışır: bir kişi ortaklık programına kaydolur ve bir mağaza motoru alır. Ardından bu mağazayı barındırmasına koyabilir ve çalışmaya başlayabilir. Ancak bu mağazadaki tüm veriler bizim veri tabanımızdan alınır, yani her bir ortağa değerli veri tabanımıza erişim izni vermemiz gerekir. Ne kadar tehlikeli olduğunu hayal edebiliyor musunuz? Sonuçta, tüm ortak mağazaların onunla çalışabilmesi için veritabanına dışarıdan erişim açmamız gerekiyor. Erişim verileri saldırganların eline geçerse ne olur?

API'nin bize yardımcı olacağı yer burasıdır. Veritabanına erişim vermek yerine, ortak mağazaların bilgi alacağı bir API oluşturacağız. Böylece veritabanı ile sadece bizim API scriptimiz çalışacak ve store bu script ile çalışacaktır.

Nasıl çalışır?
Örneğin, bir mağaza API'mize bir istek gönderir
http://ourapi.com/get_books?limit=20
ve API'miz 20 kopyadan oluşan bir kitap listesi döndürmesi gerektiğini anlıyor, çünkü 20'ye eşit limit parametresini geçtik. Komut dosyamız (API) veritabanına bir istekte bulunur, bir kitap listesi alır ve onları geri döndürür. mağaza (aslında yalnızca ) belirli bir biçimde görüntülenir. API'nin bilgileri döndürme biçimi kesinlikle herhangi biri olabilir, asıl şey mağazalarımızın bunu anlamasıdır. JSON, serileştirilmiş dizi veya XML olabilir. Artık önemli değil, asıl mesele, prensibi anlamanız.

API'nin anladığı komut kümesini tanımlarsınız. Örneğin bizim durumumuzda bunlar kitap listesi alma, kategori listesi alma, popüler kitaplar alma, yeni kitaplar alma gibi komutlar olabilir. Bu nedenle, bir saldırgan API'mize erişme fırsatı bulsa bile, yapabileceği tek şey kitapların bir listesini almaktır ve bu, veritabanımız için herhangi bir tehdit oluşturmaz.

Umarım basit bir örnekle API'nin ne olduğunu anlatabilmişimdir. Herhangi bir sorunuz varsa, yorumlarda veya forumda onlara sorun; bunları çözmede size yardımcı olmaktan memnuniyet duyarız.

Microsoft programcıları, meslektaşlarının işini kolaylaştırmak ve tüm Windows programlarına evrensel bir arayüz sağlamak için API - "Uygulama Programlama Arayüzü" gibi bir şey yarattı.

Bu, programlar tarafından en sık kullanılabilen bir dizi işlev ve prosedürdür: bir dizin ağacını görüntüleme, dosya arama, kapatma, simge durumuna küçültme ve tam ekrana genişletme düğmeleriyle standart bir pencere görüntüleme ve diğerleri. Sonuç olarak, Windows için bir program oluşturan bir geliştiricinin, bir program penceresi, bir klasör seçmek için bir pencere ve diğer benzer temel işlemleri görüntülemek için özel alt rutinler üzerinde düşünmesi ve geliştirmesi gerekmez - sadece kernel32.dll'den araması veya user32.dll kütüphaneleri fonksiyonları ve prosedürleri API, onun ihtiyaç duyduğu fonksiyon ve onun için her şeyi kendisi yapacaktır. Bu tür birçok işlev ve prosedür vardır - yaklaşık 600.

MS-DOS işletim sisteminde API diye bir şey yoktu - bu işletim sistemi için bir program yazmayı üstlenen kişi, baştan sona düşünmek ve üzerinde bir görüntü görüntüleme yöntemlerini uygulamak zorunda kaldı. ekran, kullanıcıdan veri alma, dosya sisteminde gezinme, gerekirse grafik çizme 2. Bu, kullanıcı dostu bir arayüze sahip programlar geliştirme sürecini çok zahmetli bir süreç haline getirdi, genellikle program için kabul edilebilir bir grafik arayüz oluşturmak için harcanan zaman ve çaba, programın oluşturulduğu kendi algoritmasını uygulama maliyetini aştı. Sözde "konsol" uygulamalarının çok yaygın olması, yani yalnızca komut satırından, arayüz olmadan çalışan programların - veriler aynı komut satırına girilmiş veya içinde belirtilen bir dosyadan gerçekleştirildi. , ve sonuçlar düz metin modunda çıktı.

Windows işletim sisteminin ortaya çıkmasıyla, programcıların programın görünümünü ve uygun bilgi giriş ve çıkış yöntemlerini geliştirmek için sıkı çalışması büyük ölçüde kolaylaştırıldı - zaten Windows 3.0'da API işlevleri kullanıldı. Şimdi, programcı, örneğin, bir metin giriş penceresi veya bir kaydırma çubuğu oluşturmak isterse, dilin diğer herhangi bir işlevi gibi, yalnızca ihtiyaç duyduğu parametrelerle böyle bir pencereyi görüntülemek için işleve bir çağrı yazmak zorundaydı. Programını yazdığı ve böyle bir pencereyi veya şeridi yeniden çizen bir program oluşturmak uğruna çok büyük miktarda kod girmemesi (bu tür nesnelerin de kullanılacağı bir sonraki programı geliştirirken, bu tür nesnelerin de kullanılacağını fark ederken, bu tür bir kodu yeniden geliştirmeniz veya eskisini bu yeni programın ihtiyaçlarına göre uyarlayarak kısmen kullanmaya çalışmanız gerekecektir). Bu nedenle, API'nin görünümü, programlama teknolojisinde devrim niteliğinde bir atılım yaptı ve bilgi girişi ve çıkışı için standart arayüz nesnelerini programlama gibi rutin ayrıntılar hakkında endişelenmeden, tanıdık kullanıcı dostu arayüzle gerekli programları çok daha hızlı oluşturmanıza izin verdi.

Visual Basic for Applications (VBA) dilinde, program yorumlayıcı tarafından yürütüldüğünde birçok API işlevi ve prosedürü kendileri olarak adlandırılır, bu nedenle metin giriş ve çıkış pencerelerini görüntülemek, üzerinde geometrik şekiller çizmek için bunları kullanmaya kesinlikle gerek yoktur. ekran ve diğer basit eylemler - gerektiğinde VBA tarafından çağrılır ve üzerindeki programın bu dilin ilgili işlevlerini kullanması yeterlidir. Bununla birlikte, bazen yerleşik VBA işlevlerinde analog olmayan veya mantıksız veya çok yavaş çalışan bazı eylemlere ihtiyaç duyulur. Örneğin, bir dizin ağacı görüntüsüne sahip bir klasör seçme penceresi (Şekil 5.1) veya bir dosya arama programı (VBA işlevlerine benzer - "Application.FileSearch" nesnesi - çok sayıda dosyayla çok yavaş çalışır) . Bu gibi durumlar için VBA, API işlevlerini çağırma yeteneği sağlar.

Ne yazık ki, VBA'da API işlevlerinin kullanımı yardımda belgelenmemiştir, bu nedenle bunların nasıl kullanılacağını öğrenmek için ya internette ofis programlama ile ilgili kitaplar veya kaynaklar aramanız ya da API çağrıları içeren programların kodunu analiz etmeniz gerekir. .

Çoğu durumda, Office için programlama yaparken API kullanmadan yapabilirsiniz, ancak bazen yalnızca API işlevine yapılan bir çağrı istenen sonuca yol açabilir. Diyelim ki Word araç çubuğundaki bir düğmeyi tıklattığınızda ve bu düğmeye ve Shift veya Control tuşlarına aynı anda bastığınızda farklı makroların çağrıldığından emin olmanız gerekiyor. İşte bunu yapmak için bir kod parçası:

İşlev GetAsyncKeyState Lib "user32.dll" (ByVal kState As Long) Tamsayı Olarak Bildirin

GetAsyncKeyState (vbKeyShift Veya vbKeyControl)

GetAsyncKeyState (vbKeyShift) ise

Macro1'i çağırın: Sub'dan çıkın

ElseIf GetAsyncKeyState (vbKeyControl) Sonra

Makro2'yi çağırın: Sub'dan çıkın

İlk satır, bir VBA programında kullanım için API işlevinin "rezervasyonu" gibidir. GetAsyncKeyState işlevinin user32.dll kütüphanesinden (yalnızca diğer programlar tarafından kullanılması amaçlanan programları içeren dosya) çağrıldığı ve bu işleve anahtar numarasının iletildiği ve bir tamsayı (yani - 0, eğer) döndürdüğü görülebilir. ilgili numaraya sahip tuşa basılmaz ve -32767 veya basılırsa 1). VBA dışı kitaplıklardan çağrılan herhangi bir işlev veya prosedür, Declare komutu kullanılarak yedeklenmelidir.

Komuttaki vbKeyShift ifadesi, Shift tuş kodunun (değeri 16'dır) yerine geçer ve vbKeyControl, kolayca anlayabileceğiniz gibi, Kontrol tuşu kodunun yerine geçer. "Eğer ... O zaman" ifadelerinin yapısı açık görünüyor 3 ve değilse, VBA yardımına bakın. Makronun adından önceki Çağrı komutu, hatırladığınız gibi, onu çalıştırmak anlamına gelir.

İnternette API 4'e adanmış Rus siteleri var. Bu özellik seti hakkında daha fazla bilgi edinmek için onları ziyaret edin.

Temel bilgilerle başlayalım: API nedir? Kısaltma, Uygulama Programlama Arayüzü veya Uygulama Programlama Arayüzü anlamına gelir. İsim kendisi için konuşuyor gibi görünüyor, ancak daha ayrıntılı bir açıklama düşünmek daha iyidir.

Daha önce de belirtildiği gibi, bir API her şeyden önce bir arayüzdür. Geliştiricilerin bir uygulama oluşturmak için hazır blokları kullanmalarını sağlayan bir arayüz. Mobil uygulamalar geliştirme durumunda, bir "akıllı ev" ile çalışmak için bir kitaplık bir API görevi görebilir - tüm nüanslar kitaplıkta uygulanır ve kodunuzda yalnızca bu API'ye başvurursunuz.

Web uygulamaları söz konusu olduğunda, API, kendi uygulamalarınızı yazarken kullanımı kolaylaştıran standart HTML'den farklı bir biçimde veri gönderebilir. Üçüncü taraf genel API'leri, verileri en yaygın olarak iki biçimden birinde sunar: XML veya JSON. Uygulamanız için bir API oluşturmaya karar verirseniz, JSON'un XML'den çok daha özlü ve okunması daha kolay olduğunu ve XML biçiminde verilere erişim sağlayan hizmetlerin ikincisini aşamalı olarak kullanımdan kaldırdığını unutmayın.

Örneklerle web uygulamalarında API

Bir uygulama - örneğin Github - diğer geliştiricilerin kullanabileceği kendi API'sine sahiptir. Bunu nasıl kullanacakları, API'nin sağladığı yeteneklere ve geliştiricilerin hayal gücünün ne kadar iyi çalıştığına bağlıdır. GitHub API, örneğin bir kullanıcı, onun avatarı, okuyucuları, havuzları ve diğer birçok faydalı ve ilginç bilgi hakkında bilgi edinilmesini sağlar.

Benzer şekilde, Ruby dahil herhangi bir dilde istek gönderebilirsiniz. Talebin cevabı yaklaşık olarak aşağıdaki bilgiler olacaktır:

("giriş": "Freika", "id": 3738638, "avatar_url": "https://avatars.githubusercontent.com/u/3738638?v=3", "gravatar_id": "", "url": "https://api.github.com/users/Freika", "html_url": "https://github.com/Freika", "followers_url": "https://api.github.com/users/Freika/followers", "following_url": "https://api.github.com/users/Freika/following(/other_user)", "gists_url": "https://api.github.com/users/Freika/gists(/gist_id)", "yıldızlı_url": "https://api.github.com/users/Freika/starred(/owner)(/repo)", "subscriptions_url": "https://api.github.com/users/Freika/subscriptions", "organizasyonlar_url": "https://api.github.com/users/Freika/orgs", "repos_url": "https://api.github.com/users/Freika/repos", "events_url": "https://api.github.com/users/Freika/events(/privacy)", "alınan_events_url": "https://api.github.com/users/Freika/received_events", "type": "Kullanıcı", "site_admin": false, "name": "Evgeniy", "şirket": "", "blog": "http://frey.su/", "yer": " Barnaul "," email ":" "," kiralanabilir ": true," bio ": null," public_repos ": 39," public_gists ": 13," Follower ": 15," Follow ": 21,"create_at ": "2013-03-01T13: 48: 52Z", "updated_at": "2014-12-15T13: 55: 03Z")

Yukarıdaki blokta görebileceğiniz gibi, yanıt bir oturum açma, bir avatar, sitedeki ve API'deki bir profile bağlantı, kullanıcı durumu, genel havuzların sayısı ve diğer faydalı ve ilginç bilgileri içerir.

API tek başına yeterli değil

Uygulamanız için eksiksiz bir API oluşturmak, savaşın yalnızca yarısıdır. API'ye nasıl erişmeyi düşünüyorsunuz? Kullanıcılarınız buna nasıl atıfta bulunacak?

Akla gelen ilk şey, istediğiniz bilgiyi almak için olağan HTTP istekleri dizisidir ve bu yanlış cevaptır. Bu durumda en belirgin yol, en uygun ve basit değildir. Arayüzle çalışmak için, API'yi kullanarak bilgi almanın ve göndermenin gerekli tüm yollarını açıklayacak özel bir kitaplık oluşturmak çok daha mantıklı olacaktır.

Bir örnek vermek için Github'u tekrar kullanalım: Bu mükemmel hizmetin API'si ile çalışmak için (ve arayüzü en kapsamlı yetenekleri sağlar), çeşitli dillerde birkaç kitaplık oluşturuldu, örneğin Octokit gem. Bu tür kitaplıkların (ve örnek olarak gösterilen gem) belgelerinde, ilgilenen herhangi bir geliştirici GitHub'dan bilgi almak ve bunları hizmet API'si aracılığıyla geri göndermek için gerekli tüm yolları bulabilir.

Bu nedenle, kendi API'nizi oluşturuyorsanız, en yaygın dillerde onunla çalışmak için aynı kitaplıkların oluşturulmasına katılmanın belki de faydalı olduğunu düşünün. Ve uygulamanız için belirli bir talep düzeyinde, başka birinin API'nizle çalışmak için kendi kitaplığını oluşturabileceğine hazırlıklı olun. Bu iyi.

kullanışlı bağlantılar

Sonraki makalelerde, bir API'nin nasıl düzgün bir şekilde oluşturulacağı, güvenliğinin nasıl sağlanacağı ve bazı bilgilere erişimin nasıl kısıtlanacağı hakkında konuşacağız.

API (İngilizce Uygulama Programı Arayüzü'nden), istemcinin sitesi ile sunucu arasındaki etkileşim için bir arayüzdür. Sunucunun dışarıdan çalışmak için açtığı bir kaynaktır yani. bir programcı bunu bir programın, kitaplığın, modülün işlevselliğine erişmek için kullanabilir. API, sağlayıcı sitenin potansiyelini ve gücünü kullanan kaynakların çalışmasını ve web projesinin yeteneklerini genişleten ek bileşenlerin başlatılmasını sağlar.

Avantajlar:

Türler

  • geri dönüyor. Bir üçüncü taraf uygulaması, belirtilen parametrelere sahip bir yöntem istediğinde, sunucu istenen bilgileri belirli bir biçimde sağlar;
  • değiştiriyor. İstemci, sunucunun yeni bilgiler giren veya üzerinde belirli ayarları değiştiren bazı işlevlerini çağırır.

Yandex.Direct API'si

API, web sitesi tanıtımı için etkilidir.

  1. Geliştiriciler, temelde, arama motoru hizmetiyle doğrudan etkileşime giren uygulamalar oluşturabilir. Bu tür programlar, reklamverenlerin büyük ölçekli olanları esnek bir şekilde yönetmesine, her biri hakkında istatistiksel raporlar almasına ve bütçeleri doğru bir şekilde tahmin etmesine olanak tanır.
  2. Direct API'yi kullanan reklam ajansları, müşterilerinin, müşterilerinin - temsilcilerinin tüm listesini görüntüleyebilir.
  3. Arama motoru optimizasyonu için kullanılan belirli ifadeler, PPC reklamcılığında düşük bir TO sağlıyorsa, bunlar için gösterimleri otomatik olarak kapatabilirsiniz. Tematik sitelerde, API aracılığıyla teklifler belirleyebilirsiniz, belirli bağışçılar kaldırılabilir.
  4. Yandex.Direct API'si bir SOAP arayüzüne sahiptir, yani uygulama oluşturmak için çok çeşitli programlama dilleri sağlar. Bu protokol Perl, Java gibi diller tarafından desteklenmektedir.