Come effettuare la tecnologia di RESTO
Ci sono due lati a questo racconto, il primo è
come generare le richieste legittime di RESTO ed il secondo è come
maneggiare correttamente le risposte.
Generazione Delle Richieste
Quando viene a generare la richiesta, avete tre
opzioni principali. In primo luogo, potete generare manualmente
la richiesta, usando l'intestazione del PHP funzionate. Ciò vi
dà la flessibilità completa nella generazione della richiesta, ma
coinvolge la maggior parte della codificazione. In secondo
luogo, potete usare una delle funzioni incorporate di richiesta del
PHP quale file_get_contents() o file()/fopen(), fread() e fclose().
Con questo metodo, molto le informazioni dettagliate sono
maneggiate automaticamente da PHP e ricevete la stessa risposta.
Per concludere, potete usare un codice categoria su ordinazione
destinato per essere usato con l'api in questione. Questi codici
categoria richiedono generalmente nient'altro che la lista di
parametro e restituiranno i risultati sotto forma d'un oggetto su
ordinazione o li renderanno accessibili attraverso un codice
categoria.
Generazione Manuale
La generazione delle richieste è manualmente la
prima volta soltanto ingannevole, dopo il quel, codice-riutilizza e la
scossa di modularità dentro. La funzione che genererà la
richiesta è concettualmente abbastanza fondamentale. In primo
luogo, tutti i parametri di richiesta sono preparati per accertare la
trasmissione adeguata. Dopo, il URL per il punto finale è
generato, allora è analizzato e rotto in su nei relativi elementi.
Per concludere, la richiesta in se è trasmessa per mezzo degli
zoccoli:
functioncallapi($endpoint, #,
#, #, #)
{
$action = urlencode($action);
$type = urlencode($type);
$keyword = urlencode($keyword);
Tre dei parametri passati sono URL messi. Ciò è
necessaria da accertarli è passata correttamente sopra il URL.
Nell'esempio precedente, una ricerca "di stile" è stata
effettuata; se la ricerca preferibilmente fosse stata "libro di
stile," lo spazio avrebbe richiesto la codifica, con conseguente
style%20book. Ho trascurato la cifratura delle variabili in
codice di devkey, ritenenti l'autorità di pubblicazione ha preso come
sarebbe usata in considerazione quando le genera.
$url =
$endpoint."?devkey=$devkey&action=$action&type=$type&keyword=$keyword";
$url_info = parse_url($url);
$host = # '];
$path = # ']. "?" domanda‘di.$url_info[ '];
$data = "";
Qui il URL in se è generato, compreso i parametri ora
URL-MESSI. Il URL deve essere deconstructed giù ai relativi
elementi per uso nel collegamento grezzo dello zoccolo.
#, 80);
fputs($fp, "ALBERINO". "HTTP/1.1\r\n di $path");
fputs($fp, "ospite: ". # ");
fputs($fp, "accettano: */* \r\n");
fputs($fp, "Accept-Charset:ISO-8859-1, utf-8;q=0.7,
*;q=0.7\r\n");
fputs($fp, "Connection:close\r\n");
fputs($fp,
"Content-Type:application/x-www-form-urlencoded\r\n");
fputs($fp, "Soddisfare-Lunghezza: ".strlen($data).
"\r\n\r\n");
fputs($fp, "# ");
Qui le informazioni generate dal codice precedente infine
sono trasmesse. La prima linea del fputs() trasmette il percorso
al documento chiesto e la seconda linea specifica l'ospite voluto.
# = "";
while(!feof($fp))
{
#, 128);
}
fclose($fp);
list($http_headers, $http_content)=explode("\r\n\r\n",
#);
ritorno #;
}
Per concludere, la risposta è richiamata ed il
contenuto della risposta è restituito. Imparate come maneggiare
le risposte nelle sezioni che si occupano presto di quel lato delle
cose.
Generazione Rapida
Utilizzando le funzioni incorporate della lima del
PHP, lo stesso processo può essere realizzato con molto meno codice
(benchè abbiate meno flessibilità). Questa funzione funziona
concettualmente lo stesso di quella precedente, a meno che tutte le
chiamate dello zoccolo della lima siano sostituite con una chiamata a
file_get_contents():
functioncallapiquick($endpoint, #,
#, #, #)
{
$action = urlencode($action);
$type = urlencode($type);
$keyword = urlencode($keyword);
$url =
$endpoint."?devkey=$devkey&action=$action&type=$type&keyword=$keyword";
$response = @file_get_contents($url);
ritorno #;
}
Ci realmente non è molto da spiegare con questo
esempio. La codifica del URL è stata discussa precedentemente e
la singola chiamata del file_get_contents() maneggia tutta la magia.
Il segno & davanti la chiamata di funzione è usato per
sopprimere tutti gli avvertimenti che possono risultare da una lima o
da un URL inesistente, perché questi dovrebbero essere maneggiati
dalla funzione di chiamata (file_get_contents() restituiranno falso in
questi casi). Negli ambienti pre-PHP5 dovrete usare il fopen()
anziché file_get_contents(). Una certa flessibilità è persa
con questo tipo di richiesta, perché potete più non regolare le
intestazioni su ordinazione o le intestazioni facoltative, che possano
essere richieste o molto desiderabile secondo l'api con cuisiete
interagendosi iete interagendosi.
Attrezzi Automatizzati
Mentre la popolarità del fotoricettore assiste
gli aumenti, in modo da vogliono la prevalenza dei codici categoria
del prebuilt per maneggiare il lavoro sporco realmente di interazione
con l'assistente. Se il servizio che desiderate interagirsi con
ha un codice categoria disponibile, esso è definitivamente degno
osservare in. L'accesso a del codice categoria naturalmente
dipenderà dal codice categoria in se. Dovrebbe venire con
documentazione sufficiente e l'accesso probabilmente non differirà da
troppo dagli esempi più iniziali — appena con una poco
più verifica degli errori (voi speranza). Qualcosa tenere
presente è che molti moduli del prebuilt sono sviluppati ed
effettuati dai terzi e come tali voi potrebbero dovere attendere un
istante dopo che le nuove caratteristiche siano liberate sull'api
affinchè loro diventino disponibili con il vostro codice categoria.
Maneggiamento della risposta
Come vi occupate della risposta dipende da quale
metodo di trasmissione alla richiesta voi scelga. Se generaste
manualmente la richiesta o o con l'aiuto di una delle funzioni
incorporate del PHP (come file_get_contents()) inoltre dovrete
maneggiare manualmente la risposta. Se utilizzaste un modulo di
terzi, avrà relativa propria interfaccia per il richiamo dei
risultati.
Manualmente analizzare la risposta
La risposta ha fornito dall'assistente dovrebbe
essere un documento di XML; fortunatamente, XML è stato
destinato per essere facile da analizzare. Purtroppo, non
importa come è stato progettato, manualmente analizzare qualche cosa
non è solitamente divertimento molto. PHP5 viene con
SimpleXML, che fa il maneggiamento dei documenti di XML una brezza.
Gli utenti PHP4 non hanno SimpleXML; tuttavia, alcuni
moduli di terzi come MiniXML sono disponibili che effettui le funzioni
simili.
Una volta che avete ricevuto la risposta, attaccarla in un
oggetto di SimpleXML dovrebbe essere una brezza. Usando
l'esempio delle biblioteche e la funzione precedenti di richiesta, vi
concludete in su con qualcosa come questo:
# =
callAPIQuick('http://library.example.com/api.php ', '123', 'ricerca
',
'libro ',‘stile ');
if($response)
{
$xml = simplexml_load_string($response);
print_r($xml);
}else
{
eco "alimentazione di caricamento di errori";
}
Qui, la risposta non è falsa (e quindi qualcosa,
presumibilmente il XML che stavate sperando per, siete stati
rinviati). Si noti che questo presupposto è generalmente valido
grazioso. Quando un assistente che fornisce un api incontra un
errore, dovrebbe fornire l'errore in una disposizione piacevole di
XML. La funzione del simplexml_load_string() prende la risposta
e la trasforma un oggetto di XML che può direttamente essere
raggiunto, ripetuto attraverso e così via. Per concludere, la
funzione del print_r() provoca un'uscita facile da usare che mostra il
contenuto dell'oggetto, indicato qui:
Oggetto Di SimpleXMLElement
(
[ Richiesta ] = > Oggetto Di SimpleXMLElement
(
[ RequestId ] = > 123a456
[ Parametri ] = > Oggetto Di SimpleXMLElement
(
[ Discussione ] = > Allineamento
(
[ 0 ] = > Oggetto Di SimpleXMLElement
(
)
[ 1 ] = > Oggetto Di SimpleXMLElement
(
)
[ 2 ] = > Oggetto Di SimpleXMLElement
(
)
[ 3 ] = > Oggetto Di SimpleXMLElement
(
)
)
)
)
[ Risposta ] = > Oggetto Di SimpleXMLElement
(
[ ResultCount ] = > 2
[ Articolo ] = > Allineamento
(
[ 0 ] = > Oggetto Di SimpleXMLElement
(
[ Titolo ] = > Volume 1 Del Libro Di Stile
[ Condizione ] = > Fuori
[ strette ] = > 3
[ CopiesOnHand ] = > 2
[ Autore ] = > Daina Di Jon
)
[ 1 ] = > Oggetto Di SimpleXMLElement
(
[ Titolo ] = > Volume 2 Del Libro Di Stile
[ Condizione ] = > Dentro
[ strette ] = > 0
[ CopiesOnHand ] = > 1
[ Autore ] = > Daina Di Jon
)
)
)
)
Guardando quell'uscita, le cose della coppia
dovrebbero essere immediatamente evidenti:
-
SimpleXML vi fa molto rapidamente le cose realmente utili
molto per.
-
Gli oggetti risultanti non visualizzano gli attributi (si
veda la lista di discussione sotto i parametri). I dati sono
dentro là, esso appena non sono indicati con un print_r().
-
Gli allineamenti cominciano contare a 0 (appena come
dappertutto altrimenti in PHP, è giusto qualcosa tenere presente).
-
L'allineamento dell'articolo è elemosinare giusto da
maneggiare con un ciclo del foreach().
Sopportando tutte quelle informazioni in mente, una coppia
delle linee rapide del codice è tutta che sia richiesta per esplorare
il soddisfare più completamente.
eco "che avete cercato: {#
request->parameters->argument[3]->value}<br>> ";
l'eco "qui è il vostro {# response->resultcount>}
results<br >";
foreach($xml->Response->Item COME &$item)
{
echeggi "{# title>} vicino {#
author}<br>>";
}
Qui il conteggio di domanda e di risultato di
ricerca è presentato ed allora i risultati essi stessi sono ripetuti
attraverso. La sintassi ottiene poco un bizzarro quando
occuparsi degli allineamenti (come dimostrato quando la domanda di
ricerca è stampata), in modo da di esso è spesso ragionevole
ripetere con loro per chiarezza.
Il RESTO è un metodo efficace di interrogazione del APIs
a distanza quando per la parte di richiesta è ammissibile della
vostra transazione avvenire nella radura. La generazione delle
domande di RESTO è facile quanto URL-METTENDO i parametri richiesti e
specificare in codice un punto finale per la chiamata.
Occupandosi delle risposte di RESTO può essere un piccolo più
ingannevole; tuttavia, dagli attrezzi leveraging gradisca
SimpleXML, esso anche può essere completato rapidamente.
ciò è un articolo aggiunto da Emanuela Hedrick
Diniego: Il nostro Web site
non è responsabile delle informazioni contenute da questo articolo.
Questo articolo in nessun modo riflette le viste, le opinioni, i
pensieri o la credenza del personale dell'indice degli articoli.
Avviso di traduzione: L'articolo "come
effettuare la tecnologia di RESTO" è stato tradotto usando un
servizio di traduzione automatizzato. Chiediamo scusa
francamente per tutti gli errori di traduzione che hanno accaduto.
Grazie per capire.
|