web-dev-qa-db-fra.com

Comment créer un service d'API Web dans PHP

Duplicata possible:
Est-il nécessaire d'avoir un fichier wsdl pour la création d'un webservice en php?

Je veux créer une API web.

Mon exigence est que je veuille créer de manière à ce que mes clients puissent insérer/supprimer des données de la base de données de mon site Web, mais je ne veux pas que les clients soient directement connectés à mon site. Je veux qu'ils appellent mon URL de fichier WSDL via une demande client, qui retournera la réponse au client.

J'ai entendu dire que nous pouvons le faire avec l'aide de SOAP appel ou NuSOAP. J'ai essayé plusieurs méthodes après avoir fait quelques recherches sur Google mais sans succès.

Pouvez-vous s'il vous plaît me dire les instructions étape par étape comment je peux y parvenir.

22
ashokostech

Fondamentalement, qu'est-ce qu'une API?

Si vous comprenez comment les données passent d'un formulaire HTML au code PHP, alors croyez-moi, vous savez tout sur les API. Ici, plutôt que de parler de formulaires, nous parlons d'URL créées à la fin par ces formulaires.

Quels sont les types d'API?

Il existe deux types d'API très utilisées pour les services Web: SOAP et REST. Google est l'un des principaux acteurs avec une API basée sur SOAP tandis que Yahoo (et la plupart de leurs acquisitions récentes) ont adopté l'approche REST. Le plus souvent, un service "Web 2.0" que vous rencontrez aujourd'hui utilisera probablement REST.

Comment créer une API REST dans PHP avec clé d'authentification pour supprimer une valeur de la base de données?

Disons que nous avons une classe PHP (manage.php) qui nous aide à gérer les entrées dans une base de données:

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

Sur notre propre serveur, nous pouvons accéder à cette fonctionnalité comme suit:

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

Assez facile pour nous, mais comment permettre à quelqu'un qui n'est pas sur notre serveur d'accéder aux mêmes fonctionnalités? Pour cela, nous allons créer un troisième fichier qui servira de tampon (ou "interface") entre les autres développeurs et notre classe. Voici un exemple de fichier que nous pourrions créer pour permettre aux développeurs d'accéder à la fonction de suppression dans notre classe, nous le localiserons à "api/delete.php"

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

Cela permettra aux utilisateurs de nous envoyer une demande POST à http://example.com/api/delete.php avec un api_key et un entry_id. You ' Nous remarquerons que la fonction est très similaire à ce que nous avons écrit sur notre propre serveur, sauf que nous vérifions la variable POST api_key en utilisant une fonction pour voir si elle est autorisée à accéder à la base de données. Nous ne l'avons pas incluse fonction ici (hasPermission) pour des raisons de simplicité. En plus de ce qui est affiché, vous devrez également trouver le compte de l'utilisateur en fonction de l'api_key, mettre en place une vérification des erreurs et (si vous voulez faire une bonne API) fournir un correctement formaté succès ou réponse d'erreur après la demande. Nous allons entrer dans les réponses de succès et d'erreur dans un peu.

Comment concevoir une bonne API et pourquoi est-ce important?

Je suppose que cette vidéo de Google peut expliquer beaucoup mieux que moi ... http://youtu.be/aAb7hSCtvGw ..

Références:

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/

Résultat de recherche Google

Remarque: La réponse est la compilation de toutes les références !!.

54
codersofthedark