Bir üçüncü taraf sitenin REST API için bir PHP kütüphanesi oluşturma. Diğerleri kullanabilirsiniz böylece kütüphane uygun bir FOSS lisansı altında çıkacak. Üçüncü taraf site doğrulanmış ve doğrulanmamış istekleri hem API'leri vardır. Doğrulanmış istekleri için, onlar seçtiniz OAuth.
Birçok şey PHP ile olduğu gibi, OAuth ile çalışmak için hiç bir tek iyi yol yoktur. Şimdiye kadar, ben OAuth uygulamaları bir avuç tespit ettik:
- PECL's OAuth extension, neredeyse "1.0" kalite olarak.
- PEAR's HTTP_OAuth, ama yine de "alfa" kaliteli olarak kabul edilir.
- Zend Framework's Zend_Oauth, oldukça kararlı ve uygulama ZF kullanılarak yazılmış olması gerekmez.
- oauth-php, iyi Google
php oauthiçin çarptı.
Mevcut kütüphane çeşitliliği sorunudur. OAuth 1 önemli bir parçası olan signing the request. Bu REST API için bir istek yapmak için, ben kütüphanelerden biri aracılığıyla gitmek zorunda anlamına gelir. Benim koduyla OAuth kütüphanelerinden birine donatılacak önlemek için çalışıyorum, ve sadece kendi kodunu kullanmak için hangi OAuth kütüphane almak için kütüphane kullanacağız kodlama sağlar. Çünkü karmaşık OAuth bazı programcılar için anlamak için ne kadar bu önemli düşünün, ve very important that the coder using my library be comfortable and familiar with OAuth bulunuyor.
Ben OAuth nesneleri sarmak ve imzalı HTTP isteklerini yapmak benim kütüphane kodu için standart bir şekilde sunmak için tasarlanmış bir arabirim oluşturarak bunu yaptık. Şimdiye kadar listede sonraki oauth-php kütüphanesi ile, PECL, armut ve Zend kütüphaneler için destek yarattık. API ayrıca doğrulanmamış isteklerini verir, çünkü, ben de PHP akarsu ve PEAR ve Zend paketleri gerektiren HTTP isteği kütüphaneler için adaptörler yarattık. (İnşa ve kullanılabilir olmasını garanti ediyoruz çünkü PHP akarsular, ihtiyaç duyulan herhangi bir yapılandırmaya gerek kalmadan varsayılan olarak kullanılır.)
Bu işin önemsiz olmayan bir miktarı olarak sona erdi ve kod look çok daha karmaşık ve heybetli gerçekten daha kritik hale geldi. Sadece kod (tm) Works, ve bunu yaparken (böyle otomatik geçti OAuth nesnenin sınıf adına göre HTTP adaptörünü toplama, bu da kullanıcıların kütüphane değiştirmeden kendi adaptörleri oluşturmanıza olanak sağlar) sihirli bir sürü gerektirir.
Ben benim koduyla bir OAuth kütüphane paketlemek için daha iyi olabileceğini düşünmeye başlıyorum. OAuth bir RFC tarafından tanımlanan ve bağlı kütüphaneler tüm doğru uygulamak olduğunu. Ben sadece kullanıcı çeşitli tuşlar / sır / belirteçleri sağlamak ve bütün bir OAuth uygulanması bir gereklilik ekleyerek pahasına, esere kendim yapmak olabilir that the user did not pick. Bu benim görüşüme göre büyük bir dezavantajı bulunuyor. Ayrıca, lisans uyumluluk bir soru var. Ben kendi kodu için daha kısıtlayıcı FOSS lisansı tercih ederdim ederken almaya olurdu kütüphane, bir çok liberal bir FOSS lisansı altında kullanılabilir.
tl;dr: yeniden kullanılabilir kütüphanesi için, gereken ben continue using pluggable HTTP adapters ve kullanıcı OAuth kitaplığı (veya non-OAuth HTTP kütüphanesi) kullanmaya karar icar, or should I decide for the user ve sadece paket benim kendi başka bir kütüphane?