Sign up with your email address to be the first to know about new products, VIP offers, blog features & more.

Créer un API REST avec MySQL, PHP et Slim Framework (partie pratique)

Dans la partie précédente Créer un API REST avec MySQL, PHP et Slim Framework (partie théorique) ,nous avons appris les concepts fondamentaux environ API REST et préparé notre environnement de développement en installant les outils nécessaires nécessaires Je souhaite que tout le monde a eu de bonnes connaissances sur REST et d’autres domaines techniques et que vous avez tous les outils nécessaires installés.

Aujourd’hui, nous allons apprendre comment mettre en place un projet de PHP et l’écriture du code réel pour l’API REST. Aussi, nous allons apprendre à écrire des requêtes SQL nécessaires à l’exécution des opérations CRUD (Create Read Update Delete) de base des données.

Télécharger “Créer un API REST avec MySQL, PHP et Slim Framework” Creating-REST-API1.rar – Téléchargé 2909 fois – 69 KB

Démarrer le Projet PHP

Comme nous le savons tous IDE font processus de développement plus facile. Donc, je vous recommande d’utiliser un IDE pour le développement du projet PHP au lieu d’utiliser le bloc-notes plaine. Vous pouvez aller pour Eclipse , Aptana Studio , PhpStorm ou Netbeans .

Structure du Projet PHP

Le schéma suivant vous donnera une idée de la structure de répertoires du projet que nous allons développer maintenant.

  • Include: Toutes les « Helper Classes » que nous construisons sont placé ici
  • Libs: Toutes les bibliothèques de tiers sont ici. Dans notre cas, nous plaçons bibliothèque Slim
  • Index.php: Se charge de tous les demandes vers l’api
  • .htaccess: Règles de apache et d’autres règles pour la structure d’URL

Exemple: De : Domaine/v1/index.php/tasks À : Domaine/v1/tasks

Maintenant, nous allons commencer le projet de PHP.

1- Allez dans le répertoire où WAMP est installé . Généralement wamp sera installé dans C: \ wamp . (Si vous avez installé tout autre logiciel plutôt que WAMP, vous devez aller dans le répertoire recommandé par ce logiciel).

2-Dans un premier temps, nous commençons par la création des répertoires nécessaires. Dans le dossier wamp allez à www (c: \ wamp \ www \) et de créez un dossier nommé task_manager. Ce dossier sera le répertoire parent de notre projet. Dans task_manager créez trois dossiers de plus nommés libs , include et v1 .

3-Maintenant Copiez et collez la bibliothèque Slim à l’intérieur du dossier libs.(le lien de téléchargement est publié dans la partie précédente).

4-Normalement cadre Slim fonctionne quand index.php est inclue dans l’url ce qui ne rend pas l’url bien formé. Donc, en utilisant les règles de .htaccess nous pouvons nous débarrasser de index.php à partir de l’URL et de faire des urls sympathiques. À l’intérieur du dossier v1 créer un fichier nommé .htaccess et collez le code suivant. (Notez que ce nom de fichier ne doit pas inclure toute extension supplémentaire dans le nom comme .txt)

.htaccess

Préparation des classes Helpers

Nous commençons à écrire ensemble des classes d’aide nécessaires à ce projet. Ces classes auxiliaires fournit des fonctions nécessaires pour interagir avec la base de données.

5- A l’intérieur du dossier Include créer un fichier nommé config.php avec le contenu suivant. Ce fichier contient toute la configuration du projet comme les paramètres de connexion de base de données et d’autres variables.

Config.php

6-Créer une autre classe nommée dbconnect.php Ce fichier de classe occupe principalement de la connexion de base de données.

DbConnect.php

Chiffrer le mot de passe

7 – La meilleure façon de sécuriser les mots de passe des utilisateurs n’est pas de les stocker sous forme de texte, mais tous les mots de passe doivent être cryptés avant de les ranger dans la db. La classe suivante prend soin de chiffrer le mot de passe utilisateur. Créez un autre fichier nommé PassHash.php et coller le code ci-dessous.

PassHash.php

Fonctions de CRUD

8-Maintenant, créez une autre classe nommée DbHandler.php Cette classe est l’un des fichiers importants dans notre projet qui fournit des fonctions nécessaires pour effectuer des opérations de CRUD sur la base de données. Chaque fonction est expliquée par son nom et les commentaires, je ne dois pas avoir à expliquer beaucoup sur eux.

DbHandler.php

Manipulation des appels d’API

Maintenant, nous avons toutes les classes requises pour l’API REST. Maintenant, nous pouvons commencer le code pour gérer tous les appels d’API individuels.

9-A l’intérieur du dossier créer un fichier nommé index.php et ajoutez le code suivant. Ici, nous incluons les bibliothèques requises et d’autres fonctions d’assistance.

  • verifyRequiredParams () :Cette fonction vérifie les paramètres obligatoires dans la demande
  • validateEmail () – Vérifie si l’adresse email est valide ou non.
  • echoRespnse () – Cette fonction fera écho la réponse JSON avec un code de statut.

Index.php

La réponse JSON

En appelant chaque demande API une réponse JSON sera publié avec un code d’état HTTP. Sur le côté client, vous devez vérifier le code d’état de la réponse http. Si le statut est 200 , la demande est traitée avec succès. Aussi, vous pouvez remarquer une « erreur » noeud dans la réponse. Si la valeur d’erreur est vrai , cela signifie une erreur est survenue lors du traitement des données de l’utilisateur.

Les appels d’API sans authentification (sans clé API dans l’en-tête de demande)

Ces appels ne doivent pas inclure clé API dans la tête de la requête. Le but principal de ces appels est d’interagir avec la base de données sans aucune authentification. L’inscription et la Connexion seront de cette catégorie.

? Inscription de l’utilisateur

Afin d’interagir avec l’API, l’utilisateur doit inscrire dans notre système en premier. Une fois, il a enregistré une clé API sera générée et stockée dans la base de données. Cette clé API sera privé à seul cet utilisateur.

10- Ajouter le code suivant dans index.php . Cette fonction gère l’enregistrement des utilisateurs.

Index.php

Dans le tableau ci-dessous vous pouvez trouver les informations de demande d’API sur l’URL, la méthode HTTP et les paramètres nécessaires pour être posté Dès le succès de l’enregistrement, la réponse JSON suivant sera établi.

Si la demande manque des paramètres obligatoires, le JSON suivant sera établi.

?Connexion de l’utilisateur

11 . Ajoutez le code suivant pour gérer la connexion utilisateur. Après avoir vérifié les informations d’identification de l’utilisateur, la clé API pour cet utilisateur sera publié dans la réponse JSON. La clé de l’API devrait être inclus dans l’en-tête de la demande dans tous les appels d’API restantes.

Index.php

Si la connexion est réussie ,le JSON suivant sera établi.

Si les informations sont erronées, vous pouvez vous attendre le JSON suivant.

Tout en traitant avec les données de la tâche, nous avons besoin d’identifier l’utilisateur en utilisant la clé API dans la tête de la requête en lisant le champ Authorization . Fondamentalement, nous allons examiner la base de données pour clé API assorti et obtenir l’utilisateur approprié. Si la clé API n’est pas présenté dans le tableau des utilisateurs, nous allons arrêter l’exécution et l’echo json d’erreur.

12 . Ajoutez la méthode suivante dans index.php . La méthode authenticate () sera exécutée à chaque fois avant de faire des opérations liées à la tâche sur la base de données.

Index.php

Si la clé API est manquante dans l’en-tête de demande, le JSON suivant sera repris avec 400 comme code d’état.

Si la clé API est pas valable ,ce JSON sera écho avec 401 comme code d’état.

les appels d’API avec authentification (y compris la clé API dans la demande)

Les appels suivants sont les appels d’API qui doivent avoir une clé API dans la tête de la demande. Ces appels à l’API principalement traite les données de la tâche de l’utilisateur comme la création, la lecture, la mise à jour et la suppression.

Création d’une nouvelle tâche

13 . Ajoutez la méthode suivante pour créer une nouvelle tâche. Ici vous pouvez remarquer que méthode authenticate est appelée pour vérifier la clé de Api avant d’insérer une nouvelle tâche.

Index.php

Lors de la création réussie d’une nouvelle tâche, le JSON suivant sera établi. Si vous avez obtenu ce JSON, vous pouvez voir la nouvelle ligne insérée dans les tâches et les tables des tâches de l’utilisateur.

 

 

? Obtenir Toutes les tâches

14- La méthode suivante sera lister toutes les tâches de l’utilisateur. Nous ne devons pas soumettre des params pour cet appel API.

Index.php

Après que le JSON sera émis pour la liste des tâches.Les « tâches »représente la liste des tâches comme un tableau.Aussi, si le «statut»est0, cela signifie que la tâche n’a pas encore été faite.

 

? Obtenir seule tâche

15- La méthode suivante va chercher les détails d’une tâche unique. Vous devez ajouter l’id de la tâche avec un / d’URL. Pour un exemple, si vous voulez des détails de la tâche 1, l’url sera /tasks/1 .

Index.php

Les détails d’une seule tâche sera à suivre le format JSON.

Si vous passez un id de la tâche qui n’y est pas dans la base de données, vous obtiendrez 404 pas trouvé d’erreur.

? Mise à jour des tâches

16- Le code suivant prendra soin de mettre à jour une tâche. L’URL pour cet appel API est la même que l’obtention des détails de tâche unique, seule différence est que nous devrions utiliser la méthode PUT au lieu de GET.

Index.php

1

Après que la mise à jour est réussie, vous obtiendrez le JSON suivant.

Suppression des tâches

17- Encore une fois l’URL de la suppression de la tâche est le même que la tâche de mise à jour, mais cela nécessite la méthode DELETE.

Index.php

1

Vous obtiendrez JSON suivant si la tâche est supprimée avec succès.

Ici, nous complètons les parties PHP et MySQL.

share