2012-02-16 7 views
14

मैं PHP में एक आरईएसटी क्लाइंट को कार्यान्वित करना चाहता हूं, और पहले CakePHP Webservice Behavior के एक संशोधित संस्करण का उपयोग कर रहा हूं, जो कि मैं जो खोज रहा हूं उसके करीब है, लेकिन मैं केक पर नहीं बना रहा हूं, इसलिए यह बंद है सूची।PHP के लिए सरल लेकिन स्थापित/पूर्ण REST क्लाइंट?

मैं एक आरईएसटी क्लाइंट की तलाश में हूं जो मुझे बुनियादी आरईएसटी अनुरोध करने और अनुरोध के शीर्षलेख/निकाय को वापस पाने की अनुमति देता है। वैकल्पिक है, लेकिन वांछित विशेषताएं:

  • बुनियादी HTTP प्रमाणीकरण
  • बाद पुनर्निर्देश
  • बंद का बैकअप और विफल अनुरोधों

मैं के माध्यम से otherSOthreads पढ़ा है और पाया है की फिर से अनुरोध करते हुए असहनीय उत्तरों का गुच्छा जिसमें मुख्य रूप से "इसे स्वयं लिखना, यह कठिन नहीं है" या "उपयोग कर्ल" (यानी पिछले एक जैसा है) या "यहां एक कोड स्निपेट है जो इसे करेगा" (निश्चित रूप से स्थापित या मजबूत नहीं) । This question सबसे संभावित रूप से सहायक है, लेकिन इसमें उपरोक्त है, साथ ही दो self-rolledlibraries उनके लेखकों द्वारा पोस्ट किए गए हैं जो बहुत ही बुनियादी हैं और उपर्युक्त सुविधाओं में से कुछ खो रहे हैं और, जबकि वे शायद चाल चलेंगे, शायद ही कभी स्थापित या बनाए रखा जा सके जैसा कि मैं चाहूंगा

यह प्रश्न Guzzle से भी जुड़ा हुआ है, जिसमें विपरीत समस्या है - जबकि मजबूत और अच्छी तरह से समर्थित, यह बेहद जटिल, कॉन्फ़िगर करना और स्थापित करना मुश्किल है, और जिस तरह से मैं ढूंढ रहा हूं उससे कहीं अधिक है।

तो: क्या किसी को PHP के लिए एक स्थापित आरईएसटी क्लाइंट के बारे में पता है जो केवल आरईएसटी अनुरोध करता है, छोटा और केंद्रित है (मैं एक, शायद दो PHP फाइलें सोच रहा हूं), लेकिन व्यापक रूप से उपयोग और समर्थित है? मैं HTTP उपयोग में ढांचे या क्रांति की तलाश नहीं कर रहा हूं - मूलभूत आरईएसटी अनुरोध करने के लिए सिर्फ एक पुस्तकालय। मैं व्हील फिर से को फिर से शुरू नहीं करना चाहता, और हजारों (यदि लाखों नहीं) PHP परियोजनाओं के साथ हर दिन आरईएसटी का उपयोग करता हूं, तो मुझे आश्चर्य है कि मुझे ऐसा कुछ नहीं मिला है।

बहुत सी गुणवत्ता वाले आरईएसटी सर्वर पुस्तकालय उपलब्ध हैं - आरईएसटी क्लाइंट क्यों नहीं? मैं मूल रूप से Tonic की तरह कुछ ढूंढ रहा हूं, लेकिन एक ग्राहक के रूप में। Pest (ऊपर से) अच्छी तरह से दिखता है, और निकटतम है, लेकिन मुझे आश्चर्य है कि कुछ और स्थापित नहीं है।

+0

एक उत्थान ने मुझे याद दिलाया कि मैंने यहां कभी जवाब नहीं स्वीकार किया है। मैं अपने प्रश्न में जुड़े हुए [कीट] (https://github.com/educoder/pest) का उपयोग करके समाप्त हुआ - यह बहुत अच्छा प्रशंसक या अतिरिक्त कोड के बिना काम करता है, जिसका मैं उपयोग नहीं कर रहा हूं। मैं केवल घातीय बैकऑफ को लागू नहीं कर रहा था, हालांकि - अगर मुझे इसकी ज़रूरत है, तो मैं गुज़ल को एक और रूप दूंगा। – cincodenada

उत्तर

11

Guzzle में बहुत सी उन्नत सुविधाएं हैं, लेकिन मुझे अभी भी लगता है कि आप आसानी से अपनी न्यूनतम आवश्यकताओं के लिए इसका उपयोग कर सकते हैं।

  1. डाउनलोड phar फ़ाइल कि कक्षाएं आप अपने GitHub रिहाई पेज से आवश्यक सभी शामिल हैं: https://github.com/guzzle/guzzle/releases
  2. अपने आवेदन में phar फ़ाइल शामिल करें
  3. बनाना होगा (यह guzzle के लिए एक autoloader कॉन्फ़िगर कर देगा) एक ग्राहक
  4. ग्राहक के लिए एक ExponentialBackoffPlugin संलग्न
  5. ग्राहक से अनुरोध भेजें

उदाहरण:

<?php 

// Include the phar and register the autoloader 
require 'guzzle.phar'; 

// Create a client for http://test.com (binding to a host is optional) 
$client = new Guzzle\Http\Client('http://test.com'); 

// Attach the exponential backoff plugin to the client so that requests 
// are retried automatically 
$client->addSubscriber(Guzzle\Plugin\Backoff\BackoffPlugin::getExponentialBackoff()); 

// Create and send a GET request to grab the response 
$response = $client->get('/foo.json')->send(); 

// Dump the JSON response data as an array 
var_dump($response->json()); 
+0

अच्छा जवाब, समझने में बहुत आसान है। –

+0

जहां मैं guzzle.phar डाउनलोड कर सकता हूं? – BILL

+0

लिंक टूटा हुआ है, लेकिन आप यहां प्रत्येक रिलीज के लिए guzzle.phar फ़ाइल ढूंढ सकते हैं: https://github.com/guzzle/guzzle/releases – w5m

6

आप Requests या यहां तक ​​कि HTTP PECL library देख सकते हैं। हालांकि, ये केवल HTTP अनुरोध/प्रतिक्रिया प्रक्रिया से संबंधित हैं। आप उससे अधिक की तलाश कर रहे हैं? आरईएसटी डिज़ाइन HTTP प्रोटोकॉल के साथ बहुत अधिक अंतर करता है कि इसके शीर्ष पर बनाया जा सकता है कि बहुत अधिक अमूर्तता नहीं है।

-2

curl बल्कि वर्बोज़ है, PHAR को सेटअप का एक समूह की आवश्यकता है। यदि आप वास्तव में एक सरल आरईएसटी विकल्प चाहते हैं, तो इसे आजमाएं:

प्रिंट फ़ाइल_get_contents ('http://php.net/');

संबंधित मुद्दे