PHP'de

2011-12-01 6 views
21

Olası Çoğalt web API hizmetini nasıl oluşturulur:
Is it necessary to have a wsdl file for the creation of a webservice in php?PHP'de

Bir web API oluşturmak istiyorum.

Benim gereksinimi Müşterilerimin/insert Web sitem veritabanından veri silme mümkün olacaktır böylece yola oluşturmak istediğinizi, ama müşterilerin doğrudan siteme giriş istemiyoruz. WSDL dosya URL'mi bir müşteri isteğiyle aramasını istiyorum, bu da müşteriye yanıtı döndürecek.

Biz SABUN çağrı veya NuSOAP yardımıyla bunu yapabilirsiniz duydum. Bazı googling yaptıktan sonra birkaç yöntem denedim ama başarılarım yok.

Lütfen bunu nasıl başarabileceğimi adım adım talimatları anlatabilir misiniz?

+0

@TillHelgeHelwig: Bu tamamen farklı bir soru ... Aslında, sorunun yanıltıcı bir başlığı var ... – codersofthedark

cevap

51

Temel olarak, API nedir?

veri php koduna bir HTML formundan gider anlamak, o zaman tüm API hakkındaki biliyorum bana güven. Burada konuşan formlardan ziyade, bu formlarla yaratılan urller hakkında konuşuyoruz ...

API türleri nelerdir? SOAP ve REST:

web hizmetleri için yoğun olarak kullanılan API'ler iki tür vardır. Google, SOAP tabanlı bir API'ye sahip en büyük oyunculardan biri iken, Yahoo (ve yeni satın alımlarının çoğu) REST yaklaşımını benimsedi. Çoğu zaman, bugün karşılaştığınız bir “Web 2.0” hizmeti muhtemelen REST kullanıyor olacaktır.

Nasıl veritabanından bir değeri silmek için Kimlik Doğrulama Anahtarı ile PHP'de REST API oluşturulması?

en bize bir veritabanında girdileri yönetmenize yardımcı olan bir PHP sınıfı (manage.php) var diyelim: Kendi sunucusunda

class manage { private $entryId; function __construct($entryId) { 
     $this->entryId = $entryId; 
    } function deleteEntry() { 
     //delete $this->entryId from database 
    }} 

, böylece gibi bu işlevselliği erişmek olabilir:

require_once('manage.php'); 
$m = new manage(23); 
$m->deleteEntry(); 

Bizim için yeterince kolay, ancak sunucumuzda olmayan birinin aynı işleve erişmesine nasıl izin veririz? Bunun için, diğer geliştiriciler ve sınıfımız arasında bir tampon (veya “arayüz”) olarak hareket edecek üçüncü bir dosya oluşturacağız. Burada geliştiriciler, biz bu kullanıcıların bir POST isteği göndermek sağlayacak

require_once('manage.php'); 
if(hasPermission($_POST['api_key']) { 
    $m = new manage($_POST['entry_id']); 
    $m->deleteEntry(); 
} 

'api/delete.php' de bulun edeceğiz sınıfımızda silme işlevini erişmesine izin vermek için oluşturabilir bir dosyanın bir örnek api_key ve bir entry_id ile http://example.com/api/delete.php numaralı telefondan bize. Fonksiyonun, kendi sunucumuza yazdıklarımıza çok benzediğini fark edersiniz. POST api_key değişkenini, veritabanına erişim yetkisi olup olmadığını görmek için bir işlev kullanarak kontrol ederiz. Sadeliğin iyiliği için bu işlevi buraya eklemedik (hasPermission). Neyin gösterildiğine ek olarak, kullanıcının hesabını api_key'e dayanarak bulması, bazı hata kontrolünü yapması ve (iyi bir API oluşturmak istiyorsanız) isteğin ardından doğru biçimlendirilmiş bir başarı veya hata yanıtı sağlaması gerekir. Başarı ve hata yanıtlarına biraz gireceğiz.

İyi Bir API Nasıl Tasarlanır ve Neden Önemlidir?

Bu video Google tarafından benden daha iyi açıklayabildiğini tahmin ediyorum ... http://youtu.be/aAb7hSCtvGw ..

Referanslar:

http://en.wikipedia.org/wiki/Representational_state_transfer

http://en.wikipedia.org/wiki/SOAP

http://particletree.com/features/how-to-add-an-api-to-your-web-service/

http://www.webresourcesdepot.com/how-to-create-an-api-10-tutorials/

Google Search Result

Not: Yanıt, tüm başvuruların bir derlemesidir !!

+5

Kopyalama macunu olmasına rağmen, bunu çevrimiçi bulamayan birine cevap verdi ve yardımcı oldu. –

+0

Bunu buldum, diğer referans değil, hedefine ulaştı. Kesin olarak +1 – mok