Come effettuare la tecnologia di RESTO

Dutch French Spanish Portuguese Italian German Japanese Chinese Korean Russian Arabic Bookmark and Share this Article Original English article
  

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.


Online: 1559 users browsing the articles directory