Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:webservices [2025/01/13 09:17] – [À noter :] dthevenot | sio2:webservices [2025/01/20 11:33] (Version actuelle) – [Mise en pratique1 : Utilisation d'un web service REST gratuit pour obtenir la parité entre 2 monnaies] dthevenot | ||
---|---|---|---|
Ligne 94: | Ligne 94: | ||
On souhaite créer une interface permettant d' | On souhaite créer une interface permettant d' | ||
+ | |||
+ | {{: | ||
L' | L' | ||
Ligne 106: | Ligne 108: | ||
Le contrôle graphique correspondant à la parité ne doit pas être accessible. | Le contrôle graphique correspondant à la parité ne doit pas être accessible. | ||
* 2. Tester l' | * 2. Tester l' | ||
- | * 3. Écrire le script // | + | * 3. Écrire le script // |
< | < | ||
$url = ' | $url = ' | ||
Ligne 116: | Ligne 118: | ||
===== Mise en pratique2 : Utilisation d'un web service pour obtenir la liste des villes correspondant à un code postal donné ===== | ===== Mise en pratique2 : Utilisation d'un web service pour obtenir la liste des villes correspondant à un code postal donné ===== | ||
- | * 1. Test du service web : https:// | + | * 1. Test du service web : https:// |
- | * 2. Faire l' | + | * 2. Faire l' |
- | * 3. Écrire le script **accesServiceWeb.inc.php** qui récupère le code postal saisi, fait appel au service | + | * 3. Écrire le script **accesServiceWeb.inc.php** qui récupère le code postal saisi, fait appel au service |
- | * 4. Modifier **index.php**, | + | * 4. Modifier **index.php**, |
- | + | ||
- | + | ||
- | ===== Mise en pratique3 : Une première API avec LARAVEL ===== | + | |
- | Ce projet sert à découvrir l' | + | |
- | + | ||
- | ==== Prérequis : ==== | + | |
- | - Laravel installé | + | |
- | - Composer installé | + | |
- | - PHP et MySQL (ou un autre SGBD) configurés | + | |
- | + | ||
- | ==== Etape 1. Créer un nouveau projet Laravel ==== | + | |
- | + | ||
- | Le projet se nomme **api-articles** | + | |
- | + | ||
- | ==== Etape 2. Configurer la base de données ==== | + | |
- | Créer la base de données et l' | + | |
- | + | ||
- | Ouvrez le fichier .env et configurez les paramètres de votre base de données, notamment : | + | |
- | + | ||
- | DB_DATABASE=bdarticles | + | |
- | + | ||
- | DB_USERNAME=admintest | + | |
- | + | ||
- | DB_PASSWORD=mdptest | + | |
- | + | ||
- | ==== Etape 3. Créer la migration et le modèle Article ==== | + | |
- | Laravel fournit une commande pour créer une migration et un modèle en même temps : | + | |
- | < | + | |
- | php artisan make:model Article -m | + | |
- | </ | + | |
- | Cela va générer un **modèle Article** et une **migration** pour la table associée. Modifiez la migration dans database/ | + | |
- | + | ||
- | < | + | |
- | public function up() | + | |
- | { | + | |
- | Schema:: | + | |
- | $table-> | + | |
- | $table-> | + | |
- | $table-> | + | |
- | $table-> | + | |
- | }); | + | |
- | } | + | |
- | </ | + | |
- | Ensuite, exécutez la migration. | + | |
- | + | ||
- | ==== Etape 4. Créer un contrôleur API ==== | + | |
- | Vous pouvez maintenant créer un contrôleur pour gérer les articles via l'API : | + | |
- | < | + | |
- | php artisan make: | + | |
- | </ | + | |
- | Cela créera un contrôleur dans app/ | + | |
- | < | + | |
- | <?php | + | |
- | + | ||
- | namespace App\Http\Controllers\Api; | + | |
- | + | ||
- | use App\Http\Controllers\Controller; | + | |
- | use App\Models\Article; | + | |
- | use Illuminate\Http\Request; | + | |
- | + | ||
- | class ArticleController extends Controller | + | |
- | { | + | |
- | public function index() | + | |
- | { | + | |
- | return Article:: | + | |
- | } | + | |
- | + | ||
- | public function store(Request $request) | + | |
- | { | + | |
- | $validated = $request-> | + | |
- | ' | + | |
- | ' | + | |
- | ]); | + | |
- | + | ||
- | $article = Article:: | + | |
- | return response()-> | + | |
- | } | + | |
- | + | ||
- | public function show($id) | + | |
- | { | + | |
- | return Article:: | + | |
- | } | + | |
- | + | ||
- | public function update(Request $request, $id) | + | |
- | { | + | |
- | $validated = $request-> | + | |
- | ' | + | |
- | ' | + | |
- | ]); | + | |
- | + | ||
- | $article = Article:: | + | |
- | $article-> | + | |
- | return response()-> | + | |
- | } | + | |
- | + | ||
- | public function destroy($id) | + | |
- | { | + | |
- | $article = Article:: | + | |
- | $article-> | + | |
- | return response()-> | + | |
- | } | + | |
- | } | + | |
- | </ | + | |
- | ==== Etape 5. Définir les routes de l'API ==== | + | |
- | Dans le fichier routes/ | + | |
- | < | + | |
- | use App\Http\Controllers\Api\ArticleController; | + | |
- | + | ||
- | Route:: | + | |
- | Route:: | + | |
- | Route:: | + | |
- | Route:: | + | |
- | Route:: | + | |
- | </ | + | |
- | ==== Etape 6. Tester l'API ==== | + | |
- | + | ||
- | Une fois votre application lancée, vous pouvez tester votre API avec un outil comme **curl**(outil de transfert de données en ligne de commandes et terminal pour Linux ou Windows. C'est une commande pratique notamment pour télécharger des fichiers, interroger un serveur WEB) | + | |
- | + | ||
- | Exemple de requêtes API : | + | |
- | * GET / | + | |
- | * POST / | + | |
- | < | + | |
- | { | + | |
- | " | + | |
- | " | + | |
- | } | + | |
- | </ | + | |
- | * GET / | + | |
- | * PUT / | + | |
- | * DELETE / | + | |
- | + | ||
- | ==== Etape 7, Utiliser l'API : Utilisation de cette api avec une application php ==== | + | |
- | L' | + | |
- | * index.php : liste des articles et possibilité de créer, modifier, supprimer un article | + | |
- | * create.php | + | |
- | * delete.php | + | |
- | * update.php | + | |
- | Nous utiliserons CURL pour effectuer les appels HTTP. | + | |
- | ==== Conclusion ==== | ||
- | Avec ce projet, vous avez appris à créer une API REST dans Laravel, à configurer les routes, à valider les données et à manipuler des modèles pour effectuer des opérations CRUD. | ||
- | //===== Mise en pratique4(facultatif) : Utilisation d'un web service REST gratuit pour obtenir la météo. ===== | ||
- | On souhaite afficher la météo sur un site web. Trouver un webservice à utiliser. | ||
- | Proposer une interface// | ||
- |