Bir web sitesi kendi genel API'sini mi kullanmalı?


31

Bir web servisi yazmaya başladım ve ben düğüm ve RESTfulish yaklaşımı ile inşa ettim.

Topladıklarımdan:

  • Bunun avantajı, kodu kopyalamanız gerekmez.
  • Dezavantajları sizsiniz:
    • genel API'yi sık sık güncelleyecek, ancak sürüm oluşturma ile çözülmesi gereken
    • servise özel önbellekleme ve optimizasyonlar yapamıyorum

En iyi uygulama nedir? Stack Exchange, Github, Twitter vb. Siteler müşterileri için kendi API'lerini kullanıyor mu?

api 

12
Kendi dogfood'unuzu yemek de sizi genel
API'nizi

Amazon böyle yapar.
OliverS

2
OlverS'in amacına eklemek için, bkz. Google Platforms Rant
Brian

Yanıtlar:


37

Kendi API'nizi kesinlikle kullanmalısınız. Bu kavram, yaygın olarak köpek maması olarak bilinir ve kod çoğaltmasından kaçınmanın ötesinde birçok yararı vardır .

  • Siteniz / ürününüz ve hangi API tüketicilerinin yazacağı arasındaki tutarlı davranış (yani, API'nizden beklentileri)
  • Başka bir test şekli.
  • Müşterilerinizden önce API’deki hataları bulabilir ve bulacaksınız, böylece kararları daha düşük maliyetlidir.

Ben senin noktalarından birine karşı tartışmasına rağmen: Eğer gereken değil sık API güncelleyeceğiz. Etrafında bir süre kalacak bir API oluşturmak ve prova etmek için zaman ayırın. Neyse ki, bu şekilde köpek maması yapmak zorlar. Daha önce müşteri kodunu kırmanız durumunda, şimdi kendi kodunuzu çiğniyor olursunuz. Yapmanız gerektiğinde , evet versiyonlama bir çözümdür, ancak bundan kaçınılmalıdır.


0

nedense soruyu poster olarak girmeme izin vermiyor, ama bendim. Cevabınızı kabul edemem, keşke yapabilseydim, çok mantıklı geliyor.

Ancak, API’nizi nasıl güncellemek istemezsiniz? Yeni özellikler ekleme, popüler olmayanları kaldırma, yeniden düzenleme vb.


Hey. Bu onun cevabı üzerine bir yorum olmalı - fakat yorum yapmak için yeterince temsilci olduğunu sanmıyorum. Neyse, önemli olan API'yi sık sık güncellememeniz gerektiği . Ve o zaman bile, yeni özellikler eklemek sorun değil - mevcut kodu kıramaz. Neden popüler olmayanları kaldırsın? Bunların kullanımdan kaldırılmasını sağlayın ve insanlar kullanımdan kaldırmaya uzun süre dayandıktan sonra bir süre sonra bunları kaldırın.
Maksimum

2
Bir API'ye yöntemler eklemek iyidir, mevcut bir API'yi değiştirmek zordur, çünkü API'ye bağlı olan herhangi bir kodu kıracaktır.
Bryan Oakley

@ stanm87: Max ve Bryan iyi söyledi. API'nizin sözleşmesini değiştirmekten kaçınmalısınız (yani arayüz ve beklenen, çalışma davranışı). İnsanlar, API'nizi kullanacaklarsa ve değiştirirseniz kodlarını kıracağına bağlı olacaktır.
Steven Evers

açıklama için çok teşekkür ederim. @Max gerçekten onun cevabı hakkında yorum yapamam
stanm87 20
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.