Nasıl PHP sığınakta API'leri kullanabilirim?

5 Cevap php

Ben arama denedim ama ben bir sığınakta arabirimi üzerinden verilere erişmek için nasıl anlamaya olamaz. Birisi kendi API kullanarak bazı hayali web hizmetinden bazı verilere erişmek gösteriyor sadece örnek kod arıyorum. Basit bir "nasıl-it-eserler" açıklaması çok yararlı olacaktır.

5 Cevap

Bir sıcak konu tür. Cevapları bir patlama bekliyoruz ;)

DİNLENME bir uygulamanın (DİNLENME sunucu) eylem bir nesne üzerinde belirlemek için HTTP isteği yöntemleri kullanarak prensibine göre çalışır. Yaygın olarak kullanılan 4 HTTP yöntemleri GET vardır, POST, PUT ve DELETE.

Ki, örneğin, söz konusu nesnenin kullanıcı verilerdir. DİNLENME url / object benzeyebilecek http://mydomain.com/services/user

Biz mevcut kullanıcı hakkında bilgi almak istedim, siz, GET http://mydomain.com/services/user/someuserid .

Bir kullanıcı oluşturmak için istedim, POST http://mydomain.com/services/user kullanmak ve istek gövdesi kullanıcının bilgilerini içerecektir.

Biz bir kullanıcının bilgisi değiştirmek istedim, PUT http://mydomain.com/services/user/someuserid kullanabilirsiniz. Yine, istek gövdesi kullanıcının yeni bilgiler içerecektir.

Bir kullanıcıyı silmek istedim, kullanmak istiyorsunuz DELETE http://mydomain.com/services/user/someuserid

Özetle, 4 farklı HTTP yöntemleri genellikle şu anlamları vardır, ama ne kadar dinlendirici bağlı olarak, sunucudan sunucuya farklılık:

  • , Getir almak, ve diğer eş olsun == GET
  • POST == oluşturmak, eklemek
  • == Değişiklik PUT, alter
  • SİL == sil, kaldır

Ben burada sadece benzer bir soruyu cevaplamak için kullanılan bazı sözde kodudur.

Herhangi bir http tabanlı RESTful istemci soruşturma genel akışı böyle bir şey gitmeli:

  1. Do a HTTP GET on the root url of the API.
  2. Parse the response based on the media type specified in the http header "Content-Type".
  3. Does the response contain the answer to my question?
  4. If yes then extract the information and do what you want with it.
  5. If no, then does the response contain a link to another resource that may have the answer to my question.
  6. If yes then do a HTTP GET or POST on that link based on what the media type definition tells you to do. Goto step 3.
  7. If no then stop looking and tell the user you cannot find an answer.

Sun Cloud API göz atın. Bu AFAIK tasarım ve belgelerinde hypermedia as the engine of application state (HATEOAS) kısıtlamasını kucaklamak API'leri ilk (tek ve hala bir) bulunuyor. Bu görünüşte küçük kısıtlama REST temel fikirlerden biri olarak ortaya çıkıyor ve sürekli son yıllarda göz ardı edilmiştir.

Sun Cloud belgeler örnek istekleri, tepkileri, ve ne köprü güdümlü medya türleri gibi görünebilir bazı güzel örnekler vardır.

http://oreilly.com/catalog/9780596529260/

Bölüm 2 ve 11 - web sitesinde örnek kod.

Eğer bir SOAP-tabanlı hizmet ile almak ve "Hizmet Başvurusu Ekle" veya "Add Web Reference" ne benzer bir deneyim için aradılar, o onu bulmak için gitmiyoruz. REST tabanlı hizmetler araçlar gereksiz o kadar hafiftir.

Sadece POST için WebRequest sınıfını kullanmak veya hizmet alırsınız. XML veya XML Serialization, ya da başka ne olursa olsun sizin gibi LINQ kullanarak göndermek için XML oluşturmak gerekir. Yanıt geri geldiğinde, tıpkı diğer XML gibi, ayrıştırmak gerekir.

Örnek olarak, "A REST Client Library for .NET, Part 1" (Üzgünüm, hiçbir parçası iki yoktur) bkz.