Ben planlama ve büyük ölçekli biz uygulama için benim ilk tam teşekküllü API yazma erken kodlama aşamalarında duyuyorum. Ben yılda birkaç API'lerini kullanmış ama bu ben bu seviyede programlı etkileşimi sağlayacak bir şey inşa etmek istendi ilk kez.
Ben en iyi uygulamalar ve bu tür arayan araştırma yeraldığını yaptık ve ben oldukça esnek tepki haberleşme sistemi sunacak DÜŞÜN ne belirledik.
Benim sorular şunlardır:
Bu API etkileşim olarak görmek için ne bekliyoruz?
Ben önemli bir şey mi kaçırdım?
API Açıklama:
Ben iletişim ve kimlik doğrulama için benzersiz bir API anahtarı için HTTP Tip 1 protokolünü kullanıyor gidiyorum.
Ben bu bir SSL bağlantısı üzerinden CURL istekleri yoluyla gelmek bekliyorum.
Başarılı Örnek (200 OK) XML Tepki (hız limiti istek):
<?xml version="1.0" encoding="UTF-8"?>
<node>
<short_message>Request Complete</short_message>
<long_message>Rate Limit Status Response</long_message>
<response_data>
<rate_limit>40</rate_limit>
<rate_used>31</rate_used>
</response_data>
</node>
Başarısız XML Tepki örneği (uygun 400/500 Soket altında gönderilir olacak);
<?xml version="1.0" encoding="UTF-8"?>
<node>
<error_code>1201</error_code>
<short_message>API Error</short_message>
<long_message>The requested API version (1.5) is invalid</long_message>
</node>
Ayrıca ben diğer geliştiricilerin migren hafifletilmesi için arama mümkün belgelerinde kullanılacak hata kodları kuruyorum. Pass / istek Fail uygun HTTP kodları ile verilecektir - Başarı (200), kötü istekleri (400), yöntem (404) bulunamadı, kimlik vb (403) başarısız oldu ..
Herhangi bir kod değişiklikler dış kod değişiklikleri gerekmez böylece ben de sürüm tabanlı uç noktaları kullanıyorum.
Nihayet Devs XML, JSON, veya PHP tefrika diziler ya tüm yanıtları istemek mümkün olacak.
Benim kod iç yapıları çok basit. Tüm veriler benzersiz bir API anahtarı dahil (muhtemelen CURL ya da bazı alternatif kullanarak) POST geçirilir. Bu API anahtarı daha sonra iç yöntemleri belirli kullanıcı için etkin olan fonksiyonları bir dizi sınırlı yürütmesine olanak sağlayacak sistemde bir kullanıcı bağlantılıdır.
Ben Altın Rule' 'API takip ediyorum - "Her silmek asla eklemek".
Yani .. Ben başka ne düşünmeliyim ve ben ne kaçırdım?