Réaliser son API avec la méthode HTTP GET

Contexte

L’entreprise Fintech souhaite réaliser un moteur de recherche pour la réservation de chambres d’Hôtel. Pour se faire, elle se connectera à 3 hôtels différents pour obtenir la liste des chambres disponibles entre deux dates et selon une catégorie choisie par le client. La génération de statistique de recherche sera également réalisée. Chaque hôtel disposera d’une base de données sur un SGBDR distinct et mettra à disposition ses informations en JSON grâce à une API REST. Chaque API sera réalisée dans un langage différent, Python avec Flask, Javascript avec Express sur NodeJS, PHP avec Slim. L’interface du moteur de recherche Finder sera réalisée grâce au Framework Django.

Intro

Partie 1  – Hôtel Amor

Slim est un micro Framework pour PHP.

route bonjour – méthode GET,  URI /bonjour

  • installer composer
  • créer un fichier composer.json dans finder/amor/

 

{
    "require": {
        "php": "7.*",
        "ext-mbstring": "*",
        "ext-mysqli": "*",
        "ext-json": "*",
        "ext-pdo": "*",
        "ext-pdo_mysql": "*",
        "slim/slim": "3.*",
        "zircote/swagger-php": "^2.0",
        "firebase/php-jwt": "^5.0"
    }        
}

 

  • en PHP7 ou supérieur, grâce à une invite de commande, exécuter dans le répertoire amor
composer require slim/slim "3"

 

  • dans un fichier finder/amor/index.php, copier le code 
<?php 
require 'vendor/autoload.php';
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

$app = new \Slim\App;
$app->get('/zaza', function(Request $request, Response $response){	
	return "wazaaaaaaaa";
});
$app->run();

 

  • tester le serveur sur  localhost/finder/amor/index.php/

slim

  • tester la route zaza
  • modifier la route zaza par bonjour pour obtenir le message bonjour.

Exemple de code client functionSlim.js en JQ, à adapter en VueJS

$( document ).ready(function() {

$('#btn-valide').click(function(){ 
$.ajax({ 
      type: "GET",
      contentType: 'application/json; charset=utf-8',
      url: "http://localhost/serveur/bonjour",
     success: function(data){
         alert(data);
      }
 });
});
 });
  • démarrer le serveur (apache ou autre)
  • tester la route
  • dans un fichier finder/amor/index.html, la page appellera la route bonjour grâce à Ajax avec la méthode GET.

</html>
———————————————————————– ANNEXE APACHE ————————————————————————————————————-

Pour le déploiement en ligne du serveur slim et éviter index.php à chaque route

dans un fichier .htaccess. Si le htaccess fait planter le serveur, des configurations du serveur Apache sont nécessaires. Enlever le htaccess et ajouter index.php à chaque uri.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"
Header set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

Partie 2  –  Hôtel Byzance

Express est un Framework pour réaliser un serveur avec Node.js.

route bonjour – méthode GET,  URI /bonjour

  • Installer NodeJS
  • Réaliser un fichier index.js dans finder/byzance
console.log("Bonjour");
  • Tester le fichier.
node "dossier"/index.js

 

  • Réaliser un fichier package.json
{
  "name": "api",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "4",
    "cors" : "2"
  }
}
  • Dans le répertoire de votre projet, installer les dépendances
npm install
  •  implémenter la route GET /bonjour et lancer le fichier.

Exemple de code serveur index.js

var express = require('express');
var cors= require('cors');
var hostname = 'localhost'; 
var port = 8080; 
var app = express(); 
app.use(cors());


app.get('/bonjour', function(req, res){ 
	  res.json({message : "Youhou", methode : req.method});
})


// Démarrer le serveur 
app.listen(port, hostname, function(){
	console.log("Mon serveur fonctionne sur http://"+ hostname +":"+port); 
});
  • démarrer le serveur
npm start
  • tester la route
  • réaliser la page index.html qui appelle la route en ajax

 

Partie 3  –  Hôtel Caraïbes

Flask est un Framework pour réaliser un serveur avec Python.

route bonjour – méthode GET,  URI /bonjour

  • installer Python
  • installer le module flask
pip install Flask
  • installer le module cors
pip install -U flask-cors
  • implémenter  la route  GET /bonjour qui devra renvoyer le message bonjour.

Exemple de code serveur index.py

from flask import Flask
from flask_cors import CORS

app = Flask(__name__)
CORS(app)

@app.route("/")
def hello():
  return "Hello World!"


if __name__ == '__main__':
 app.run(debug=True)
  • démarrer le serveur
python index.py
  • tester la route
  • réaliser la page index.html qui appelle la route en ajax