Vous êtes sur la page 1sur 21

03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

WayToLearnX » Développement Web » Web service » Créer et utiliser une API REST en PHP

Articles Recommandés

Web service

À quoi sert un
Service Web
Les applications professionnelles
modernes utilisent diverses plates-
PHP Avancé   Web service   formes de programmation pour
développer des applications Web.
Créer et utiliser une API REST en PHP Certaines…

 juillet 24, 2019

Architecture

R EST (Representational State Transfer) est l’un des moyens pour accéder aux Web
services. L’API REST est utilisée pour effectuer une requête HTTP GET, POST, PUT ou
Microservices

Liste de toutes les


DELETE côté client vers le serveur pour récupérer ou pour modifier certaines commandes CMD

informations sur le serveur.


sous Windows 10, 8
et 7
 

Rechercher dans notre site

Recherche



https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 1/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

Les services Web basés sur REST peuvent produire une sortie dans n’importe quel
format, tel que CSV, JSON, RSS, etc. Cela dépend donc du format que vous souhaitez
analyser facilement avec votre langage. Dans ce tutoriel, nous allons créer une API
REST simple à l’aide du langage PHP.

Commençons par créer un exemple d’API rest, nous allons créer un répertoire ‘api/’. Ce
répertoire contient tous les fichiers nécessaires pour ce tutoriel. Nous créerons un api
rest pour le module produit qui aura la requête HTTP Get, Post, Put et Delete pour
récupérer, ajouter, mettre à jour et supprimer les enregistrements de mysql. Les
détails de l’API rest sont les suivants:

Route Méthode Type Description


http://127.0.0.1/api/produits GET JSON Récupérer toutes les produits.

http://127.0.0.1/api/produits/{id} GET JSON Récupérer les données d’un seul produit

http://127.0.0.1/api/produits POST JSON Insérer un nouveau produit dans la base de


données.

http://127.0.0.1/api/produits/{id} PUT JSON Mettre à jour un produit dans la base de données.

http://127.0.0.1/api/produits/{id} DELETE JSON Supprimer un produit de la base de données.

Nous allons utiliser les fichiers suivants pour ce tutoriel:

index.php: Ce fichier est un fichier d’entrée. Ce fichier empêche la navigation dans


les fichiers de répertoire.

db_connect.php: Ce fichier utilisera la chaîne de connexion mysql.


produits.php: Ce fichier contient tous les méthode d’API REST.

post.php: Ce fichier permet d’envoyer une requête POST à notre API REST pour
tester l’ajout d’un nouveau produit.

put.php: Ce fichier permet d’envoyer une requête PUT à notre API REST pour
tester la mise à jour d’un nouveau produit.

delete.php: Ce fichier permet d’envoyer une requête DELETE à notre API REST
pour tester la suppression d’un nouveau produit.

.htaccess: Ce fichier est utilisé pour le routage.



https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 2/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES 
Télécharger le code source en cliquant ici.
 QCM  DÉFI / EXERCICES  FORUM
 CON

Schéma de la table des produits:


Créez une base de données MySQL nommée ‘stock’ par exemple. Si vous avez déjà une
base de données de test, exécutez le code ci-dessous dans la fenêtre de requête SQL
de la base de données. Comme illustré dans l’image ci-dessous :

1. CREATE TABLE IF NOT EXISTS `produit` (


2. `id` int(11) NOT NULL AUTO_INCREMENT,
3. `name` varchar(256) NOT NULL,
4. `description` text NOT NULL,
5. `price` int(255) NOT NULL,
6. `category_id` int(11) NOT NULL,
7. `created` datetime,
8. `modified` timestamp DEFAULT CURRENT_TIMESTAMP,
9. primary key (id)
10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Pour le moment, ajouter ces enregistrements manuellement, parce que nous allons
voir comment les ajoutés en utilisant l’api Rest.

1. INSERT INTO produit VALUES (1, 'PEN', 'Pen Blue', 1.23, 1,


'2020-7-04', '2020-9-03');
2. INSERT INTO produit VALUES (2, 'PC', 'Apple products',
300.99, 2, '2019-1-01', '2019-5-14');
3. INSERT INTO produit VALUES (3, 'Car', 'Mercedes benz',
985470.47, 3, '2019-2-06', '2019-6-23');

Ajouter le fichier .Htaccess


Nous allons créer le fichier .htaccess et écrire une règle pour accéder à l’API Rest avec
des URLs propres. Pour cela, nous ajouterons les règles suivantes,

1. RewriteEngine On # Activer le module Rewrite


2. RewriteRule ^produits/?$ produits.php [NC,L]
3. RewriteRule ^[^/]+/(\d+)$ produits.php?id=$1

Pour activer le module Rewrite sur WampServer, voir l’image ci-dessous :


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 3/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

Connexion à la base de données MySQL avec PHP


Après avoir créé la table « produit », nous allons créer le fichier db_connect.php pour
établir une connexion avec la base de données MySQL.

1. <?php
2. $server = "localhost";
3. $username = "root";
4. $password = "";
5. $db = "stock";
6. $conn = mysqli_connect($server, $username, $password,
$db);
7. ?>

API REST pour récupérer tous les enregistrements de MySQL


Nous allons créer une requête HTTP de type GET pour accéder à tous les
enregistrements de produits à partir de MySQL. Nous allons utiliser une requête
MySQL pour récupérer les données de la table « produit » et envoyer les données JSON
au client en tant qu’objet.

Nous allons maintenant créer le fichier produits.php et inclure le fichier de connexion


MySQL pour accéder aux données de la base de données.

1. <?php
2. // Se connecter à la base de données
3. include("db_connect.php");
4. $request_method = $_SERVER["REQUEST_METHOD"];
5. ...
6. ?>

Nous avons également utilisé la méthode $_SERVER pour accéder aux informations sur
l’action, comme l’ajout, la modification ou la suppression.

Dans le même fichier, Nous allons « switcher » entre les méthodes de requête( comme
GET, POST, DELETE et PUT) à l’aide de l’instruction « switch » en PHP :

1. <?php
2. switch($request_method)
3. {
4. case 'GET':
5. if(!empty($_GET["id"]))
6. {
7. // Récupérer un seul produit
8.
9.
$id = intval($_GET["id"]);
getProducts($id);

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 4/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX
10. }

11.  TUTORIELS
else   ASTUCES   QCM  DÉFI / EXERCICES  FORUM
 CON

12. {
13. // Récupérer tous les produits

14. getProducts();
15. }
16. break;
17. default:
18. // Requête invalide
19. header("HTTP/1.0 405 Method Not Allowed");
20. break;
21. }
22. ?>

Nous avons créé une requête GET pour extraire toutes les données relatives aux
produits de la base de données mysql. Pour les données relatives à un seul produit,
nous transmettons l’id du produit. Nous avons défini la méthode getProducts() afin que
nous puissions créer une méthode comme ci-dessous:

1. <?php
2. function getProducts()
3. {
4. global $conn;
5. $query = "SELECT * FROM produit";
6. $response = array();
7. $result = mysqli_query($conn, $query);
8. while($row = mysqli_fetch_array($result))
9. {
10. $response[] = $row;
11. }
12. header('Content-Type: application/json');
13. echo json_encode($response, JSON_PRETTY_PRINT);
14. }
15. ?>

La méthode mysqli_query() récupère les données de la table « produit » de MySQL et


les stocke comme abject dans la variable ‘result’. La méthode json_encode() convertit
un tableau en json.

Maintenant, accédez à l’url « http://127.0.0.1/api/produits » et vous obtiendrez un


enregistrement de tous les produits de la table « produit ». Comme illustré dans l’image
ci-dessous :


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 5/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

Api REST pour récupérer un seul produit


Nous allons créer une requête de type HTTP GET pour accéder à un seul
enregistrement de produit à partir de la base de données MySQL via php.

1. function getProduct($id=0)
2. {
3. global $conn;
4. $query = "SELECT * FROM produit";
5. if($id != 0)
6. {
7. $query .= " WHERE id=".$id." LIMIT 1";
8. }
9. $response = array();
10. $result = mysqli_query($conn, $query);
11. while($row = mysqli_fetch_array($result))
12. {
13. $response[] = $row;
14. }
15. header('Content-Type: application/json');
16. echo json_encode($response, JSON_PRETTY_PRINT);
17. }

Maintenant, accédez à l’url « http://127.0.0.1/api/produits/1 », et vous obtiendrez un


seul enregistrement de produit à partir de la table des produits.

Api Reste pour créer un nouvel enregistrement dans la base de


donnée MySQL
Nous allons créer une nouvelle Api Reste pour insérer un nouveau produit dans MySQL
en utilisant php. Nous allons créer une requête de type POST car nous publierons des

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 6/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

données JSON sur le serveur.


  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM
 CON

Nous allons ajouter un nouveau cas dans le bloc « Switch » comme indiqué ci-dessous :

1. <?php
2. ...
3. case 'POST':
4. // Ajouter un produit
5. AddProduct();
6. break;
7. ...
8. ?>

Nous allons maintenant créer la méthode AddProduct() dans le fichier


« produits.php ».

1. <?php
2. function AddProduct()
3. {
4. global $conn;
5. $name = $_POST["name"];
6. $description = $_POST["description"];
7. $price = $_POST["price"];
8. $category = $_POST["category"];
9. $created = date('Y-m-d H:i:s');
10. $modified = date('Y-m-d H:i:s');
11.
12. echo $query="INSERT INTO produit(name, description,
price, category_id, created, modified) VALUES('".$name."',
'".$description."', '".$price."', '".$category."',
'".$created."', '".$modified."')";
13.
14. if(mysqli_query($conn, $query))
15. {
16. $response=array(
17. 'status' => 1,
18. 'status_message' =>'Produit ajoute avec succes.'
19. );
20. }
21. else
22. {
23. $response=array(
24. 'status' => 0,
25. 'status_message' =>'ERREUR!.'. mysqli_error($conn)
26. );
27. }
28. header('Content-Type: application/json');
29. echo json_encode($response);
30. }
31. ?>

Nous allons maintenant tester notre API Rest pour ajouter un nouveau produit en
envoyant une requête POST, pour cela nous allons créer le fichier « post.php » et en
ajoutant le code suivant.

1. <?php
2. $url = 'http://127.0.0.1/api/produits';
3. $data = array('name' => 'PEC', 'description' => 'Pencil
2H', 'price' => '2.25', 'category' => '9');
4.
5. // utilisez 'http' même si vous envoyez la requête sur
https:// ...
6. $options = array(
7.
8.
'http' => array(
'header' => "Content-type: application/x-www-form- 
https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 7/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX
urlencoded\r\n",
9.  TUTORIELS 
'method' ASTUCES 
=> 'POST', QCM  DÉFI / EXERCICES  FORUM
 CON

10. 'content' => http_build_query($data)


11. )
12. );
13. $context = stream_context_create($options);
14. $result = file_get_contents($url, false, $context);
15. if ($result === FALSE) { /* Handle error */ }
16.
17. var_dump($result);
18. ?>

Maintenant, accédez à l’url « http://127.0.0.1/api/post.php », et vous voyez un nouvel


enregistrement de produit est inséré dans la table des produits, et sur le navigateur
vous aurez le résultat suivant :

Api Reste pour modifier un enregistrement dans la base de


donnée MySQL
Nous allons créer une nouvelle requête HTTP PUT pour mettre à jour les données dans
la base de données MySQL.

Nous allons ajouter un nouveau cas dans le bloc « Switch » comme indiqué ci-dessous :

1. <?php
2. ...
3. case 'PUT':
4. // Modifier un produit
5. $id = intval($_GET["id"]);
6. updateProduct($id);
7. break;
8. ...
9. ?>

Maintenant, nous allons créer la méthode updateProduct() dans le fichier


« produits.php ». Nous allons utiliser l’id du produit que nous voulons mettre à jour et
deuxièmement, les données mises à jour au format JSON.

Puisque PHP n’a pas de variable $_PUT similaire à $_GET et $_POST pour récupérer les
valeurs transmises, nous utilisons les flux d’entrée (input stream 'php://input' )
pour obtenir ces valeurs pour mettre à jour un produit.

RÉCUPÉRER LES DONNÉES JSON ENVOYÉ PAR LA


MÉTHODE PUT EN PHP

Vous connaissez probablement déjà $_GET, $_POST et $_REQUEST mais


que pensez vous de $_PUT? $_PUT (ainsi que $_HEAD et $_DELETE)
n’existe pas en PHP, mais…

LIRE PLUS

1. <?php
2. function updateProduct($id)
3. {
4. global $conn;
5. $_PUT = array(); //tableau qui va contenir les données

6.
reçues
parse_str(file_get_contents('php://input'), $_PUT);

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 8/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX
7. $name = $_PUT["name"];
8.  TUTORIELS   ASTUCES
$description   QCM  DÉFI / EXERCICES 
= $_PUT["description"]; FORUM
 CON

9. $price = $_PUT["price"];

10. $category = $_PUT["category"];


11. $modified = date('Y-m-d H:i:s');
12.
13. //construire la requête SQL
14. $query="UPDATE produit SET name='".$name."',
description='".$description."', price='".$price."',
category_id='".$category."', modified='".$modified."' WHERE
id=".$id;
15.
16. if(mysqli_query($conn, $query))
17. {
18. $response=array(
19. 'status' => 1,
20. 'status_message' =>'Produit mis a jour avec succes.'
21. );
22. }
23. else
24. {
25. $response=array(
26. 'status' => 0,
27. 'status_message' =>'Echec de la mise a jour de
produit. '. mysqli_error($conn)
28. );
29.
30. }
31.
32. header('Content-Type: application/json');
33. echo json_encode($response);
34. }
35. ?>

TUTORIEL CURL EN PHP

CURL est un moyen d’accéder à une URL à partir de notre code pour en
obtenir une réponse HTML. Il vous permet de vous connecter…

LIRE PLUS

Nous allons maintenant tester notre API Rest pour mettre à jour le produit en envoyant
une requête PUT via cURL, pour cela nous allons créer le fichier « put.php » et en
ajoutant le code suivant.

1. <?php
2. $url = "http://127.0.0.1/api/produits/1"; // modifier le
produit 1
3. $data = array('name' => 'MAC', 'description' => 'Ordinateur
portable', 'price' => '9658', 'category' => '2');
4.
5. $ch = curl_init($url);
6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
7. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
8. curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
9.
10. $response = curl_exec($ch);
11.
12. var_dump($response);
13.
14. if (!$response)
15. {
16. return false;
17. } 
18. ?>
https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 9/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

Maintenant, accédez à l’url « http://127.0.0.1/api/put.php », et vous voyez que le


  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES 
produit en question a été mis à jour dans la table des produits, et sur le navigateur
FORUM
 CON

vous aurez le résultat suivant :


Api Reste pour supprimer un enregistrement dans la base de


donnée MySQL
Nous allons créer une nouvelle requête d’API REST de type DELETE utilisant PHP pour
supprimer un produit de la base de données MySQL. Nous transmettons l’id du produit
que vous souhaitez supprimer en tant que paramètres.

Nous allons ajouter un nouveau cas dans le bloc « Switch » comme indiqué ci-dessous :

1. <?php
2. ...
3. case 'DELETE':
4. // Supprimer un produit
5. $id = intval($_GET["id"]);
6. deleteProduct($id);
7. break;
8. ...
9. ?>

Nous allons maintenant créer la méthode deleteProduct() dans le fichier


« produits.php ». Nous utiliserons l’id pour supprimer l’enregistrement de la table
« produit ».

1. <?php
2. function deleteProduct($id)
3. {
4. global $conn;
5. $query = "DELETE FROM produit WHERE id=".$id;
6. if(mysqli_query($conn, $query))
7. {
8. $response=array(
9. 'status' => 1,
10. 'status_message' =>'Produit supprime avec succes.'
11. );
12. }
13. else
14. {
15. $response=array(
16. 'status' => 0,
17. 'status_message' =>'La suppression du produit a
echoue. '. mysqli_error($conn)
18. );
19. }
20. header('Content-Type: application/json');
21. echo json_encode($response);
22. }
23. ?>

Nous allons maintenant tester notre API Rest pour supprimer le produit en envoyant
une requête DELETE via cURL, pour cela nous allons créer le fichier « delete.php » et en
ajoutant le code suivant.

1.
2.
<?php
$url = "http://127.0.0.1/api/produits/1"; // supprimer le

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 10/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX
produit 1
3.  TUTORIELS
$ch   ASTUCES 
= curl_init();  QCM  DÉFI / EXERCICES  FORUM
 CON

4. curl_setopt($ch, CURLOPT_URL, $url);


5. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

6. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


7. $response = curl_exec($ch);
8. var_dump($response);
9. curl_close($ch);
10. ?>

Maintenant, accédez à l’url « http://127.0.0.1/api/delete.php », et vous voyez que le


produit en question a été supprimer dans la table des produits, et sur le navigateur
vous aurez le résultat suivant :

Conclusion
Il y’a une autre solution, pour tester les méthodes GET/POST/PUT/DELETE que nous
avons vu dans ce tutoriel en utilisant Postman, qui est un outil open-source pour tester
les API RESTful que vous avez créées vous-même. Il offre une interface utilisateur avec
laquelle faire des requêtes HTML, sans avoir à écrire un tas de code juste pour tester
les fonctionnalités d’une API.

Télécharger le code source en cliquant ici.

QUESTIONS D’ENTRETIENS PHP – PARTIE 1

Questions sur PHP avec des réponses pour la préparation des entretiens
d’embauche, des tests en ligne, aux examens et aux certifications. Ces
questions et réponses…

LIRE PLUS

Les classes et les objets en PHP


Modificateurs d’accès Public, Private et Protected en PHP

PHP – Héritage

Les interfaces en PHP

Méthodes statiques en PHP

Les traits en PHP


Les constantes magiques en PHP

Les classes abstraites en PHP

Classe anonyme en PHP

Les classes finales et les méthodes finales en PHP

Les espaces de noms en PHP


Clonage d’objet en PHP

Les sessions en PHP

Les cookies en PHP



https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 11/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

 Gestion des exceptions en PHP


 TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM
 CON
Dates et Heures en PHP

Gestion des erreurs en PHP

Conversion de type de données en PHP


Les expressions régulières en PHP

Les filtres en PHP

Créer et utiliser une API REST en PHP

Récupérer les données Json envoyé par la méthode PUT en PHP

 QCMs qui pourraient vous intéresser :


Questions techniques sur MYSQL

QCM MySQL Corrigé – Optimisation de requêtes

QCM Base de données avec correction

QCM sur PHP


QCM Symfony

QCM AngularJS

QCM React

QCM HTML / CSS

QCM Java – Programmation Orientée Objet

QCM Python
QCM Cloud Computing

QCM Framework Spring

QCM Javascript

QCM jQuery

QCM Oracle
QCM sur GIT – Gestionnaire de version

QCM Linux – Gestion de processus

QCM Réseau

QCM Architecture des ordinateurs

QCM Securité informatique


QCM En Informatique Générale

QCM en C

QCM en C#

QCM sur l'algorithmique

QCM Word

QCM Excel
QCM PowerPoint

QCM Access


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 12/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS LES ASTUCES


RÉCUPÉRER   QCM  DÉFI / EXERCICES FORUM
LES FILTRES
 EN PHP

 CON

DONNÉES JSON ENVOYÉ

PAR LA MÉTHODE PUT


EN PHP

 Vous pourrez aussi aimer

À quoi sert un Service Les classes et les objets Gestion des exceptions
Web en PHP en PHP
 juillet 25, 2019  2  juillet 13, 2019  0  juillet 21, 2019  0

28 réflexions sur “Créer et utiliser une API REST en PHP”

 eric
 janvier 6, 2020 à 9:40
 Permalien

Pour ceux qui ne souhaitent pas voir retournés les lignes indexés par le numéro de
champs, il suffit d’utiliser le paramètre MYSQLI_ASSOC :

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

Ainsi, vous obtenez :

{
"id": "1",

"name": "PEN",

"description": "Pen Blue",

"price": "1",

"category_id": "1",

"created": "2020-07-04 00:00:00",

"modified": "2020-09-03 00:00:00"

},

à la place de:

{
"0": "1",

"id": "1",

"1": "PEN",

"name": "PEN",

"2": "Pen Blue",

"description": "Pen Blue",

"3": "1",

"price": "1",

"4": "1",

"category_id": "1",


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 13/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX
"5": "2020-07-04 00:00:00",

 TUTORIELS "2020-07-04
"created":  ASTUCES 00:00:00",

  QCM  DÉFI / EXERCICES  FORUM


 CON
"6": "2020-09-03 00:00:00",

"modified": "2020-09-03 00:00:00"


},

 moreira
 janvier 24, 2020 à 7:57
 Permalien

la mise a jour de la base de donnée ne fonctionne pas. en effet j’ai fait un écho de la
requete et les valeur ne sont pas remis dedans…

 Thomas Clavet
 janvier 24, 2020 à 8:25
 Permalien

N’oubliez pas d’appeler la méthode updateProduct(); dans le fichier produits.php. si


toujours ne fonction pas téléchargez le code source en cliquant sur ce
lien(https://waytolearnx.com/wp-content/uploads/2020/01/api-
waytolearnx.com_.rar). chez moi le code source fonctionne bien.

 au
 janvier 24, 2020 à 11:00
 Permalien

J’ai ainsi pris le code source j’ai ainsi le même problème même plus (juste les retour du
type produit bien ajouté).

pour la mise à jour toujours le même problème.

Incompréhensible peut-être la version de wampserver mais peux probable…

 moreira
 janvier 24, 2020 à 11:03
 Permalien

La mise a jour remet tout les chaînes de caractère dans la base de donnée vide. il y a
juste heure et la date de modification qui se met à jours.

 Thomas Clavet 
https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 14/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

 janvier 25, 2020 à 3:49


  TUTORIELS 
 Permalien
 ASTUCES   QCM  DÉFI / EXERCICES  FORUM
 CON

L’article à été mis a jour 🙂

 Paul
 janvier 30, 2020 à 5:03
 Permalien

pourriez-vous donnez le code permettant de récupérer les données et les afficher sur
une page web.

je vous remercie par avance.

PS: je suis débutant de se genre de développement

 Thomas Clavet
 janvier 30, 2020 à 5:22
 Permalien

Je vous recommande ce tutoriel.

 Paulo
 février 11, 2020 à 11:13
 Permalien

Merci pour ce tuto bien complet !

Petit pinaillement : Tout est fait pour être en ASCII dans le code source, SAUF dans
produits.php la ligne « ‘status_message’ =>’Produit ajouté avec succès.' » qui contient
des accents 😉

Je le mentionne car tous le reste est sans accents, donc je suppose que la volonté
initiale était de ne mettre aucun accents.

 Thomas Clavet
 février 11, 2020 à 11:37
 Permalien

Oui, c’est pour quoi j’ai supprimé les accents, c’est pour éviter les erreurs de codage.
Merci pour cette remarque, c’est corrigé 🙂

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 15/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

 kmellia

 février 19, 2020 à 3:33


 Permalien

Bonjour, j’ai testé votre tuto avec la base de données fournie en exemple et cela
fonctionne parfaitement.

J’ai essayé de reproduire la même chose avec une autre base de données contenant
des membres et là rien ne s’affiche. J’ai une page blanche.

Je n’arrive pas à trouver l’erreur.

Il ne s’agit pas de la connexion à la base de données, j’ai testé les nouveaux identifiants
avec la page produits et ça s’affiche.

Auriez-vous une idée ?

Je précise que je débute dans la création d’API.

 Thomas Clavet
 février 19, 2020 à 4:08
 Permalien

Bonjour kmellia 🙂

Pour afficher les données des membres sur le navigateur, d’abord vous devez
insérer des données dans la base de donnée soit via l’api(méthode POST) soit
manuellement en utilisant l’instruction insert:
INSERT INTO membres VALUES (1, 'Thomas', 20, ....); exécutez-le sur le
shell MySQL, ou via PHPmyAdmin, comme montré sur le tutoriel.

Et n’oubliez pas de modifier le code pour qu’il correspond à la structure de votre


base de données.

Si vous pensez que vous avez des erreurs dans votre code, essayez d’ajouter ces
lignes au début de votre fichier PHP, pour afficher tous les erreurs de votre script:

1. ini_set('display_errors', 1);
2. ini_set('display_startup_errors', 1);
3. error_reporting(E_ALL);

Bon courage 🙂

 kmellia
 février 20, 2020 à 10:48
 Permalien

Merci pour la réponse rapide.

Ma base de données n’est pas vide, elle contient des données.

Le problème de vient pas de là.

Par contre j’ai des accents dans ma base de données.

ça peut jouer ?

J’ai ajouté les lignes plus haut dans le fichier php juste après la balise ouvrante mais ça 
https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 16/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

n’affiche pas d’erreurs.

  TUTORIELS   ASTUCES   QCM 


Je me retrouve toujours encore avec une page blanche.
DÉFI / EXERCICES  FORUM
 CON

 Thomas Clavet
 février 20, 2020 à 11:29
 Permalien

Non, essayez d’éviter les accents dans votre base de données,

Là, c’est bizarre, essayez d’ajouter cette ligne var_dump($result);die(); après


la ligne 7 ( $result = mysqli_query($conn, $query); ) dans la méthode
getProducts() et voir qu’est ce qu’il renvoie.

Si’il ne renvoie rien, remplacer la ligne 7 par la ligne suivante, pour voir si il y a des
erreurs au niveau de la requête

1. $result = mysqli_query($conn, $query) or


die(mysqli_error($conn));

 kmellia
 février 20, 2020 à 11:16
 Permalien

Bon ben j’ai trouvé le problème.

C’est bien les accents.

Que dois-je faire, ajouter pour que les accents soient pris en compte ?

 kmellia
 février 20, 2020 à 11:18
 Permalien

Bon ben j’ai trouvé le problème.

C’est bien les accents.

J’ai testé une petite table avec et sans accents.

Sans accent, les données s’affichent très bien et avec accent j’ai une page blanche.

Que dois-je faire/ajouter pour que les accents soient pris en compte ?

 Thomas Clavet
 février 20, 2020 à 11:36
 Permalien

Ok, super 🙂

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 17/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

Pour que les accents soient pris en compte essayez d’ajouter

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


$mysqli->query('SET NAMES utf8'); après la connexion à la base de données

 CON

dans votre fichier PHP.

 kmellia
 février 20, 2020 à 11:44
 Permalien

Bon j’ai finalement trouvé la solution !

Dans le fichier db_connect.php, sous la ligne :

1. $conn = mysqli_connect($server, $username, $password, $db);

ajouter ces 2 lignes :

1. mysqli_query($conn,"SET CHARACTER SET 'utf8'");


2. mysqli_query($conn,"SET SESSION collation_connection
='utf8_unicode_ci'");

 Paul
 février 27, 2020 à 9:17
 Permalien

Bonjour,

j’ai ainsi effectué votre tuto maintenant je voudrais mettre en place un système
d’identification pour un administrateur. En effet, je voudrais que lorsque
l’administrateur se connecte il pourrait modifier les ressources (UPDATE, DELETE,
ADD). Alors que les personnes pas identifier pourront que les consulter.

Auriez vous un tuto pour faire cela, j’ai fais quelque recherche mais sans trop
réellement de succès

En vous remerciant par avance.


Cordialement

 Thomas Clavet
 février 28, 2020 à 6:12
 Permalien

Salut Paul 🙂

je vous recommandes de suivre ce tuto.

Bon courage.

 paul
 février 29, 2020 à 5:00 
https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 18/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

 Permalien
  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM
 CON

Bonjour,

suite a ma demande pour faire un espace d’administrateur. j’ai une question car
en effet si j’effectue ce tuto. l’API REST ne sera pas sécuriser car si on utilise
postman un pirate pourra toujours supprimer ou ajouter une ressource via l’url.
De plus une api doit rester sans état donc pas possible de crée une une session
sur le serveur..

Comment je peux sécuriser l’api de cela?

En vous remerciant par avance

Cordialement

 Thomas Clavet
 mars 1, 2020 à 1:25
 Permalien

Vous pouvez utiliser le token (par exemple: JWT) pour authentifier l’utilisateur,
Dans Postman il y a un champ où l’utilisateur doit spécifier le token pour qu’il
puisse exécuter la requête.

Dans la réponse JSON renvoyée par le serveur, vous pouvez renvoyer le


message « 405 Method Not Allowed » si l’utilisateur tente de violer le contrat
d’API, par exemple, en essayant de supprimer une ressource à l’aide de la
méthode DELETE.

Sachez que la plupart des serveurs n’autorisent pas par défaut


POST/PUT/DELETE.

 Paul
 mars 1, 2020 à 2:53
 Permalien

Je vous remercie pour votre réponse je vais me pencher sur cela.

Vous auriez pas par hasard des exemples, Tuto la dessus?

J’ai un peux chercher sur internet mais rien de vraiment concluant pour moi je vous
remercie

 Thomas Clavet
 avril 5, 2020 à 12:57
 Permalien

Avec plaisir 🙂

Restez connecter, peut-être que nous allons ajouter un tuto sur la sécurité des API.

https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 19/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

 TIRANI
 avril 4, 2020 à 6:22
 Permalien

Bonjour;

Très bonne tuto, je l’ai effectué et testé. Maintenant, pouvons nous ajouter un champs
Image dans la table et l’afficher correctement, sachant que json n’accepte pas les
données BLOB.

Sachant que je travaille sur Windev Mobine, je voudrai apprendre plus sur ce genre
d’API.

Encore merci pour ce traivail. cordialement.

 Thomas Clavet
 avril 5, 2020 à 1:04
 Permalien

Si j’ai bien compris, vous souhaitez transférer des images vers une application
mobile via JSON. Vous pouvez encoder l’image en Base64. En fait les données
binaires en JSON sont généralement mieux représentées sous une forme encodée
en Base64. Essayer le code suivant pour afficher une image stocké dans votre table:

1. $res = mysqli_query($conn,"SELECT * FROM my_table");


2.
3. while($row = mysqli_fetch_array($res)){
4.
5. echo '<img
src="data:image/jpeg;base64,'.base64_encode($row['image']).'
6.
7. }

 TIRANI
 avril 6, 2020 à 3:02
 Permalien

Merci pour ta réponse;


mais malheureusement j’ai pas pu l’insérer !

 Thomas Clavet
 avril 6, 2020 à 5:07
 Permalien

Je vous recommande de suivre ce tuto. 


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 20/21
03/08/2022 08:28 Créer et utiliser une API REST en PHP - WayToLearnX

  TUTORIELS   ASTUCES   QCM  DÉFI / EXERCICES  FORUM


 CON

Commentaires fermés.

Nos outils en ligne Partenaires À propos Espace personnel

Convertisseur décimal, hexadécimal, binaire, octal Accueil Inscription


Tutoriels
Convertisseur Minuscule Majuscule Sitemap Connexion

Compteur De Mots Tutoriel MySQL Archives Forum

Calculateur d’adresse IP Tutoriel PHP Politique de Communauté


confidentialité
Convertisseur Texte en ASCII Tutoriel Java Members
Contactez-nous
Convertisseur ASCII en Texte Tutoriel Python Mon adresse IP ?
À propos de nous
Cryptage MD5
Publier un article
Convertisseur XML en JSON
Devenir annonceur
Indenter automatiquement du code HTML
RSS des articles
Quel est mon adresse IP ?
RSS des commentaires
Extraire des adresses e-mails à partir d’un texte
RGPD

Copyright © 2018 - 2022 WayToLearnX. Tous les droits sont réservés.


https://waytolearnx.com/2019/07/creer-et-utiliser-une-api-rest-en-php.html 21/21

Vous aimerez peut-être aussi