2011-12-01 26 views
21

Eventuali duplicati:
Is it necessary to have a wsdl file for the creation of a webservice in php?Come creare il servizio API web in PHP

voglio creare un'API web.

Il mio requisito è che voglio creare un modo in modo che i miei clienti siano in grado di inserire/eliminare dati dal database del mio sito Web, ma non voglio che i clienti accedano direttamente al mio sito. Voglio che chiamino il mio URL del file WSDL tramite una richiesta del client, che restituirà la risposta al cliente.

Ho sentito che possiamo farlo con l'aiuto di chiamata SOAP o NuSOAP. Ho provato diversi metodi dopo aver fatto qualche ricerca su google, ma non hanno avuto successo.

Potete dirmi per favore le istruzioni passo passo su come posso ottenere questo.

+0

@TillHelgeHelwig: Quella è una domanda completamente diversa .... In realtà, la domanda ha un titolo fuorviante ... – codersofthedark

risposta

51

In sostanza, che cos'è un'API?

Se si capisce come i dati passino da un modulo HTML a un codice php, quindi fidati di me sai tutto sulle API. Qui piuttosto che parlare di forme, parliamo di URL creati alla fine da quelle forme ...

Quali sono i tipi di API?

Esistono due tipi di API molto utilizzate per i servizi Web: SOAP e REST. Google è uno dei principali attori con un'API basata su SOAP mentre Yahoo (e la maggior parte delle acquisizioni recenti) ha adottato l'approccio REST. Molto spesso, un servizio "Web 2.0" che si incontra oggi utilizzerà probabilmente REST.

Come creare un'API REST in PHP con la chiave di autenticazione per eliminare un valore dal database?

Diciamo che abbiamo una classe PHP (manage.php) che ci aiuta a gestire le voci in un database:

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

Sul nostro server, potremmo accedere a questa funzionalità in questo modo:

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

Abbastanza facile per noi, ma come consentire a qualcuno non sul nostro server di accedere alla stessa funzionalità? Per questo, creeremo un terzo file per fungere da buffer (o "interfaccia") tra altri sviluppatori e la nostra classe. Ecco un esempio di un file che potremmo creare per consentire agli sviluppatori di accedere alla funzione di eliminazione nella nostra classe, faremo questo articolo alla 'api/delete.php'

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

Questo permetterà agli utenti di inviare una richiesta POST a noi a http://example.com/api/delete.php con un api_key e un entry_id. Noterai che la funzione è molto simile a quella che abbiamo scritto sul nostro server eccetto che controlliamo la variabile POST api_key usando una funzione per vedere se è autorizzata ad accedere al database. Non abbiamo incluso questa funzione qui (hasPermission) per semplicità. Oltre a ciò che viene mostrato, dovresti anche trovare l'account dell'utente in base al api_key, inserire alcuni errori di controllo e (se vuoi fare una buona API) fornire un successo correttamente formattato o una risposta di errore dopo la richiesta. Entreremo nel successo e nelle risposte agli errori tra un po '.

Come progettare una buona API e perché è importante?

Immagino che questo video di Google possa spiegare molto meglio di me ... http://youtu.be/aAb7hSCtvGw ..

Riferimenti:

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

Nota: La risposta è una raccolta di tutti i riferimenti !!.

+5

Anche se si trattava di copia incolla, ha risposto e ha aiutato qualcuno che non ha trovato questo in linea. –

+0

Ho trovato questo, non l'altro riferimento quindi ha raggiunto il suo obiettivo. +1 di sicuro – mok

Problemi correlati