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 théorique)

Si vous allez créer une application mobile( ou web aussi) ,dont les données sont centralisées dans une base des donnée , un API REST serait un très bon choix pour établir la connexion entre l’application et le serveur.

  Si vous Prenez en considération des application comme Facebook ou Twitter , Ces application peuvent a tout moment être désinstallé  et une fois ré-installé et connecté , tous nos données seront restauré. Ceci est parce que toutes les données seront stockées dans une base de données Cloud et la communication entre la base et l’application se fait a travers un API.

Ce tutoriel Comportera 2 parties.

  Dans la 1ère partie, nous apprenons les concepts fondamentaux de REST et de faire la configuration requise pour créer l’API.

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

 

1-Introduction

  • La méthode la plus répandue pour se connecter à une base données distante à partir d’un appareil mobile est d’utiliser un service web

1

  • JSON (JavaScript Object Notation) est un format de données textuel, générique, dérivé de la notation des objets du langage ECMAScript. Il permet de représenter de l’information structurée. Créé par Douglas Crockford, il est décrit par la RFC 4627 de l’IETF.

1

  • MySQL est habituellement utilisé avec PHP, donc le moyen le plus simple et le plus évident est d’écrire un script PHP.
  • Il existes plusieurs types ou méthodes de création de web service tels que REST,SOAP, CORBA, WSDL etc.
  • Dans ce Tutoriel on utilisera l’architecture REST pour la création du web service.

2-C’est quoi REST?

  • REST ,représente Representational State Transfer, est un style d’architecture pour les systèmes hypermédia (une extension de l’hypertexte à des données multimédias, qui ajoute aux informations de type texte, d’autres médias comme des images, sons, vidéos par exemple le web) distribués, créé par Roy Fielding en 2000 dans le chapitre 5 de sa thèse de doctorat.
  • REST n’est pas un protocole (tel que HTTP) ou un format. Ce style d’architecture est particulièrement bien adapté au World Wide Web mais n’en est pas dépendant. Les contraintes, telles que définies par Roy Fielding, peuvent s’appliquer à d’autres protocoles d’application que HTTP.

3-Pourquoi REST?

  • L’architecture REST sera utile pour construire des applications client / serveur réseau.
  • La mise en œuvre REST est très simple par rapport à d’autres méthodes comme SOAP, CORBA, WSDL, etc.,
  • Il fonctionne essentiellement sur le protocole HTTP utilisé par la majorité des Terminal mobile ainsi que les sites web .

4-Les Meilleures Pratiques pour créer un API REST?

     Pour Créer un bien Conçu RESTful API (Application Programming Interface, ou interface de proggramation en fr) il faut prendre en considération Certaine Choses:

  • Les Méthodes HTTP
  • Codes de Statuts HTTP
  • Structure URL
  • Versionnement de l’API
  • Type de Contenu
  • Clé de l’API

4.1-Les Méthodes HTTP

  • Un API RESTful bien conçu devrait soutenir méthodes HTTP les plus couramment utilisés (GET, POST, PUT et DELETE).
  • Il y a d’autres méthodes HTTP comme des options, HEAD, mais ceux-ci sont le plus souvent utilisés.
  • Chaque méthode doit être utilisée selon le type d’opération que vous effectuez.

14.2-Codes de Statuts HTTP

  • Les Codes d’état HTTP dans le corps de la réponse raconte au client de l’application quelles mesures doivent être prises avec la réponse.
  • Pour un exemple, si le code de réponse est 200, cela signifie que sur la côté du serveur la demande est traitée avec succès et que vous pouvez vous attendre des données mises à jour dans la réponse.
  • Ainsi, si le code de statut est 401, la demande n’est pas autorisée. Un exemple cause de 401 pourrait être la clé API est invalide.

1

  • Il n’est pas nécessaire de soutenir tous les codes d’état HTTP, mais supporter au moins les codes suivants devrait être assez bon:1

4.3-Structure URL

Dans REST concevoir les paramètres d’URL doivent être bien formés et doit être facilement compréhensible. Chaque URL pour une ressource doit être identifié de manière unique. Si votre API a besoin d’une clé API pour l’accès, la clé API doit être conservé dans les en-têtes HTTP lieu de l’inclure dans l’URL.

Pour un exemple: 

-GET « Http://abc.com/v1/tasks/11 » – donnera les détails d’une tâche dont l’identifiant est 11.

-POST « Http://abc.com/v1/tasks  » – va créer une nouvelle tâche.

4.4-Versionnement de l’API

Il y a une énorme discussion sur le Versionnement des APIs soit de maintenir la version de l’API dans l’URL ou dans les en-têtes de la requête HTTP.

Même si il est recommandé que la version devrait être inclue dans les en-têtes de la requête, la maintenir dans l’URL lui-même est très pratique et propre sur le côté client quand il s’agit de migrer d’une version à une autre .

Exemple :

version 1 : http://abc.com/v1/tasks

version 2 : http://abc.com/v2/tasks

4.5-Type de Contenu

Le type de contenu en-têtes HTTP spécifie le type de données doit être transférée entre le serveur et le client. Selon les données que votre API soutien que vous avez besoin de définir le type de contenu.

Pour un exemple:

le type JSON devrait être Content-Type: application / json

pour XML Content-Type: application / xml

4.6-Clé de l’API

Si vous construisez une API privée où vous souhaitez restreindre l’accès ou de limiter à un accès privé, la meilleure approche est de sécuriser votre API en utilisant une clé API.

L’utilisateur est identifié par la clé API et toutes les actions peuvent être effectuées que sur les ressources qui lui appartiennent.

La clé de l’API doit être conservée dans l’en-tête ‘Authorizationde la demande déposée au lieu de passer par l’intermédiaire d’URL.

Exemple : Authorization: bf45c093e542f057caee68c47787e7d6

5-Pourquoi un Framework?

Il existe plusieurs Framework permettant de créer une RESTful Api comme Django, Slim , swagger , etc. mais pourquoi utiliser un Framework ?

La Repense est simple :

Au lieu de commencer à développer un cadre de REST frais à partir de zéro, il est mieux d’y aller avec un Framework déjà prouvé

Un Framework Fait gagner le temps de développement , d’établissement des mesures de sécurité etc.

Alors Pourquoi Réinventer la roue?

6-Pourquoi Slim Framework?

Il est très léger, propre et un débutant peut facilement comprendre le cadre.

Prend en charge toutes les méthodes HTTP GET, POST, PUT et DELETE qui sont nécessaires pour une API REST. 

  • HTTP : Slim a des abstractions de demande et de réponse facile à utiliser qui vous permettent d’inspecter et manipuler méthode, le statut, URI, en-têtes, les cookies, et le corps de messages HTTP.
  • Routeur : Slim fournit un routeur puissant qui mappe les callbacks des routes à des méthodes et des URI de la requête HTTP spécifiques. Il prend en charge les paramètres de segment de la route.
  • Caching : Slim fournit des méthodes d’assistance qui font la mise en cache côté client HTTP facile. 
  • Middleware : Slim modifie la requête HTTP et les objets de réponse avant et après que l’app Slim s’exécute ce qui sera utile pour filtrer des demandes. Exemple: nous pouvons l’utiliser pour vérifier la clé API.
  • Sessions : Slim offre un soutien de la session de première classe. Il persiste des données de session en utilisant le cryptage standard de l’industrie.
  • Cryptographie : Slim a une cryptographie super-sécurisé utilisant le cryptage de niveau militaire. Slim utilise votre clé unique pour crypter les données de session et cookies avant la persistance des données sur le disque.

7-Prérequis

Wamp Server : avec rewrite_module Activé

Slim Framework: www.slimframework.com

Advanced Rest Client : une extension Google chrome a installer via Web Store à l’onglet applications

IDE PHP

PHP: quelques connaissances basiques en PHP

7-Sujet

Pour démontrer API REST je considère un exemple d’application Gestionnaire des tâches avec des fonctionnalités très minimes.

1 .Opérations liées de l’utilisateur :l’enregistrement et la connexion.

2 .Groupe d’opérations liées aux tâches :la création, la lecture, la mise à jour et la suppression . Tous les appels d’API liées aux taches devraient inclure la clé API dans le champ d’en-tête d’autorisation.

1

Après l’exécution de ces requêtes passez par chacune des tables et assurez-vous que tout est créé correctement.

Urls de test et d’appels:

Jusqu’à présent nous avons fini avec l’obtention de votre système prêt pour le développement . Le prochain article  Créer un API REST avec MySQL, PHP et Slim Framework (partie pratique)  couvre l’ensemble du processus de départ jusqu’à l’arrivée du PHP et MySQL projet .

share