REST ve RESTful API Geliştirmenin Temelleri
Web geliştiricileri sık sık hakkında konuşuyor REST ilkeleri ve RESTful veri mimarisi, modern kalkınmanın çok önemli bir yönü olduğu için, ancak bazen inanılmaz derecede kafa karıştırıcı olabilir. REST, başlı başına bir teknoloji değil, Belli organizasyonel ilkelere sahip API oluşturma yöntemi. Bu ilkeler geliştiricilere rehberlik etmek ve API isteklerini işlemek için daha evrensel bir ortam oluşturmak içindir.
Bu yazıda RESTful geliştirme uygulamalarını kuşbakışı bir bakış açısıyla açıklamak istiyorum. Ben mücadele etmek istiyorum ne Yerine Nasıl. Her iki alana da değinmeme rağmen, bu gönderi web geliştirmeye açık olan ancak REST API kavramını kavrayamayan herkes için hazırlandı..
Web Geliştiricileri İçin REST
REST kısaltması Temsili Devlet Transferi. Bu biraz kafa karıştırıcı gelebilir ve wiki girişi daha da kafa karıştırıcı gelebilir. Ancak terminolojiyi basitleştirmek mümkündür.
REST sadece bir dizi veri iletimi için kullanılan kurallar ve mimari stiller. Yaygın olarak web uygulamalarına uygulanır, ancak verileri yazılıma da iletebilir.
Kısaltma API'si, Uygulama Metodları Arayüzü anlamına gelir. diğer kütüphanelere veya uygulamalara bağlanma. Windows’un birden çok API’sı vardır ve Twitter’ın da bir web API’sı vardır;.
Hepsini bir araya getiren RESTful API'ler, REST mimarisini izleyen API'lerdir..
REST mimarisi tam olarak nedir??
Bu, özellikleri belirlemenin zor olduğu yer. Ancak, bazı mimari sabitler vardır, örneğin:
- Tutarlılık tüm API genelinde
- Vatansızlık varlığı, yani, sunucu tarafı oturumları yok
- Kullanımı HTTP durum kodları uygun olduğunda
- Kullanımı URL bitiş noktaları mantıklı bir hiyerarşi ile
- URL’de sürüm oluşturma HTTP başlıklarında değil
W3C HTML5 spec gibi karışıklığa yol açabilecek aşırı spesifik kurallar ve REST terminolojisi etrafındaki belirsizliğin bir miasması yoktur..
Ayrıca, yukarıdaki liste hızlı ve zor kurallar olarak düşünülmemelidir, en modern RESTful API'ler için doğru olsalar bile.
REST bir hafif metodoloji Bu HTTP veri için mükemmel yapar. Bu nedenle REST web üzerinde bu kadar popüler hale geldi ve neden API geliştirme için en iyi seçenek olarak kabul ediliyor?.
Vinay Sahni'nin dediği gibi, “API bir geliştiricinin kullanıcı arayüzüdür.” Her şeyin kullanımı kolay olmalı ve mükemmel bir kullanıcı deneyimi sağlamalıdır. RESTful API'ler tam da bunu yapmayı hedefliyor.
RESTful API'ler için Anahtar Paketler
Bu ipuçları API’lerin içeriğinde kesinlikle web uygulamaları için. Bu şu demek HTTP bir gerekliliktir, ve bu genellikle API verileri harici bir sunucuda barındırılıyor. API kullanıcısı tarafında RESTful API'lerin nasıl çalıştığını inceleyelim.
API kullanıcısı, harici bir API sunucusuna bağlanan bir komut dosyası oluşturabilen web geliştiricisidir, ardından gerekli veriler HTTP üzerinden geçirilir. Geliştirici daha sonra web sitelerinde veri görüntüleyebilir harici sunucuya kişisel erişime sahip olmadan (Twitter verilerini çekmek gibi).
Genel olarak konuşursak dört komut alışığım RESTful API'lere eriş:
ALMAK
bir nesneyi almak içinPOST
yeni bir nesne oluşturmak içinKOYMAK
bir nesneyi değiştirmek veya değiştirmek içinSİL
bir nesneyi kaldırmak için
Bu yöntemlerin her biri API çağrısı ile geçti sunucuya ne yapacağını söylemek.
Web API'lerinin büyük çoğunluğu sadece izin ALMAK
istekler harici bir sunucudan veri çekmek için. Kimlik doğrulama isteğe bağlıdır, ancak aşağıdaki gibi potansiyel olarak zarar verebilecek komutlara izin verirken kesinlikle iyi bir fikirdir. KOYMAK
veya SİL
.
Ancak çok fazla RESTful API bu kadar ileri gitmiyor. Ücretsiz bir Pokémon API veritabanı olan Pokéapi'yi düşünün. Hedefi iyi sınırlayan halka açıktır (kullanıcıları belirli bir süre boyunca belirli sayıda API isteğiyle sınırlandırabilir), ancak yalnızca ALMAK
kaynaklara erişim yöntemi. Bu konuşma dili olarak adlandırılabilir. yalnızca tüketilebilir API.
Dönüş türleri ayrıca önemlidir ve homojenliği korumak tüm kaynaklar için. JSON, uygun veri yapılarını açıklayan çevrimiçi özelliklere sahip popüler bir iade türüdür.
RESTful API'ler kullanılır API nesneleri için isimler, ve eylemler gerçekleştirmek için fiiller Bu nesnelerde. Kimlik doğrulama bunun bir parçası olabilir, hız sınırlaması da bunun bir parçası olabilir. Ancak çok basit bir API, kullanıcı sınırlamalarına çok fazla endişe duymadan geçebilir.
API Kaynaklarına Erişim
Genel API'ler genellikle doğrudan web adreslerinden erişilebilir. Bunun anlamı URL yapısı önemlidir, ve sadece API istekleri için kullanılmalıdır.
Bazı URL’ler gibi bir önek dizini içerebilir / V2 /
önceki bir API’nin güncellenmiş 2. sürümü için. Bu, 1.x API’lerini amorti etmek istemeyen, ancak yine de en yeni yapıyı sunmak isteyen geliştiriciler için yaygındır..
Bu yazı kaplamasını gerçekten çok beğendim temel URL yapıları ve diğer servislerden örnekler.
Bitiş noktasının dönüş verileri değişecek çarpıcı biçimde HTTP yöntemi. Örneğin, ALMAK
içerik alırken POST
yeni içerik yaratır. İstek aynı son noktaya işaret edebilir, ancak sonuç çok farklı olabilir.
Çevrimiçi örneklere bakmak, kavramları daha net anlamanıza yardımcı olabilir. Pokeapi'yi zaten gördük, ama işte başkaları gerçek dünya API örnekleri incelemek için:
- Reddit API
- GitHub API
- Flickr API
- Pinterest API
Kendi API'nizi Oluşturma
Kendi API'nizi oluşturma süreci hafifçe alınmamalıdır, ancak sandığınız kadar karmaşık değildir. Bir alır API tasarım kalıplarının ve en iyi uygulamaların anlaşılması gerçek değeri olan bir şey inşa etmek.
Her API’nin sunucunuza bağlanın bir tür veriyi geri göndermek için. Bunu yapmak için sadece kod yazmanız gerekmez, aynı zamanda dönüş verilerini de biçimlendirmeniz gerekir. Diğer potansiyel gereksinimler arasında kimlik doğrulama ve oranı sınırlayıcı, bu yüzden bir API oluşturmak kesinlikle gönülsüzler için değildir.
Ama bir bakalım bazı temel ilkeler API mimarisinin.
Bitiş Noktaları Oluştur
API geliştirmenin bir yönü bina bitiş noktaları. Ne zaman kaynak yaratma isimleri kullanmak istiyorsun, fiilleri değil. Bu, API verilerinin bir kişiyi, yeri veya şeyi döndürmesi gerektiği anlamına gelir, çoğunlukla belirli özelliklere sahip bir şey (örneğin, bir tweet ve tüm meta verileri).
İsimlerin isimlendirilmesini öğrenmek zor olabilir, ancak bu API geliştirmenin çok önemli bir yönüdür. Basitleştirme mümkün olduğunda en iyisidir.
Büyük bir tartışma tekil ve çoğul isimler. Bir Twitter API'si oluşturuyorsanız, önce nesne grubuna (yani, tweet), sonra nesne öğesine (yani, tweet kimliğine) sahip olabilirsiniz..
$ / tweet / 15032934882934 $ / tweets / 15032934882934
Bu durumda, tekil formun daha iyi göründüğünü savunuyorum. Bu, özellikle sadece bir kaynak iade edildiğinde geçerlidir. Ancak% 100 doğru cevap belgelenmemiş, bu nedenle projeniz için en uygun olanı yapın.
İade Türünü Ayarla
Başka bir husus dönüş tipi verisi. Çoğu web kullanıcısı JSON içeriğini bekler, bu yüzden muhtemelen en iyi seçenek budur. Her ikisini de teklif etmek istiyorsanız, XML başka bir seçenektir. Ancak JSON, web geliştiricileri arasındaki temel API dönüş türüdür.
API geliştirme sürecine giren daha birçok şey var, bu yüzden önce API'lerle oynamayı öneriyorum. Bu şekilde diğer geliştiricilerin API'lerini nasıl oluşturduğunu görebilirsiniz ve umarım tipik gereksinimlere aşina olursunuz.
Daha yeni yeni başlıyorsanız, lütfen bu geliştiricilere göz atmayı düşünün:
- REST API Eğitim Sitesi
- Basit bir REST API'si yazmak
- RESTful Web Hizmeti Oluşturma
Ek Kaynaklar
Web uygulaması geliştirmeyi öğrenmenin en iyi yolu pratiktir. Verilmiş teori her zaman çalışmaya değerdir, çünkü geliştiricilerle konuşmanıza ve işlerin nasıl yürüdüğünü anlamanıza olanak tanır..
Ancak API geliştirme ile başlamak için iyi bir yer diğer API'lere bağlanma ilk. İstemci tarafı bağlantıların temellerini öğrenin ve oradan sıfırdan kendi API'nizi oluşturarak sunucu tarafı API geliştirmeye geçebilirsiniz.
Amacınız buysa, seyahatiniz boyunca yardımcı olması için lütfen aşağıdaki kaynakları göz önünde bulundurun.
Kitaplar
- REST API Tasarım Kural Kitabı
- RESTful Web API'leri
- RESTful Web Hizmetleri Yemek Tarifleri
- Rahatsız REST: Mükemmel API'yi Tasarlamak İçin Bir Kılavuz
Makaleler
- HTTP ve REST'e Yeni Başlayanlar Kılavuzu
- RESTful API oluşturma
- RESTful Kaynak Adlandırma Kılavuzu
- MEAN Yığınını Kullanarak Bir REST API Oluşturma