web-dev-qa-db-fra.com

Créer une API REST avec PHP

Je crée ma première API à laquelle, si deux valeurs sont passées, je devrais obtenir la réponse au format JSON. Le numéro sera transmis en tant que paramètre par POST. Soit en utilisant cURL ou la méthode POST est disponible).

Bien que ce soit très basique, j'aimerais connaître les meilleures pratiques et l'API devrait être créée par modèle-contrôleur. Pas simplement PHP.

J'ai cherché sur Google pour plusieurs REST API. Ils étaient bons et j'ai acquis quelques connaissances à ce sujet.

Mais je voudrais obtenir un exemple de modèle du code afin de pouvoir y faire référence et construire le mien, et cet exemple bien sûr dans la pratique standard consistant à créer une véritable REST API.

Si vous me demandez ce que j'ai essayé, ce serait vraiment amusant, en tant que débutant, tout ce que je pourrais faire, c'est ceci:

$num1 = $_REQUEST['num1'];
$num2 = $_REQUEST['num2'];

$total = $num1 + $num2;
echo json_encode($total);

Bien sûr, cela ne peut jamais être appelé une API, mais quand même. Si je donne une réponse POST à ceci, je veux la réponse de l'API REST en tant que JSON. Je devrais pouvoir la tester par REST console également pour obtenir une réponse standard.

Merci de me fournir une API RESTful très basique mais néanmoins standard.

49
Piya

Dans votre exemple, c’est comme ça: c’est simple et ça marche. Les seules choses que je suggérerais sont:

  1. validation des données postées
  2. assurez-vous que votre API envoie l'en-tête Content-Type pour indiquer au client de s'attendre à une réponse JSON:

    header('Content-Type: application/json');
    echo json_encode($response);
    

Autre que cela, une API est quelque chose qui prend une entrée et fournit une sortie. Il est possible de "sur-concevoir" des choses, en ce sens que vous les compliquez davantage.

Si vous souhaitez suivre la voie des contrôleurs et des modèles, lisez ensuite le modèle MVC et déterminez comment vos objets de domaine y correspondent. En regardant l'exemple ci-dessus, je peux peut-être voir un MathController avec une add() action/méthode.

Il existe quelques projets de point de départ pour les API RESTful sur GitHub qui valent le détour.

72
Martin Bean

Essayer d'écrire une REST API à partir de rien n'est pas une tâche simple. Il existe de nombreux problèmes à prendre en compte et vous devrez écrire beaucoup de code pour traiter les demandes et les données provenant de l'appelant, authentification , récupération des données et renvoi des réponses.

Votre meilleur choix est d’utiliser un framework qui a déjà cette fonctionnalité prête et testée pour vous.

Quelques suggestions sont:

Phalcon - Construction d'API REST - Facile à utiliser, tout en un, avec de grandes performances

Apigility - Un framework unique de gestion des API par Zend Technologies

Laravel Tutoriel sur la construction d'API

et beaucoup plus. Des recherches simples sur Bitbucket/Github vous donneront beaucoup de ressources pour commencer.

17
Nikolaos Dimopoulos