Tutoriel REST API

 🚀 Introduction

Une REST API (Representational State Transfer) permet à deux applications de communiquer entre elles grâce aux méthodes HTTP.

Chaque méthode correspond à une action précise :

MéthodeActionDescription
GETLireRécupérer des données
POSTCréerAjouter de nouvelles données
PUTMettre à jourRemplacer complètement une ressource
PATCHModifierMettre à jour partiellement
DELETESupprimerEffacer une ressource

Dans ce tutoriel, nous allons utiliser une vraie API externe:

👉 https://restful-api.dev/



📥 1. GET — Lire / récupérer des données

➤ Exemple 1 : récupérer plusieurs objets via leurs IDs

🔗 URL :

https://api.restful-api.dev/objects?id=4&id=6&id=10

🟦 cURL Exemple (GET)

curl --location 'https://api.restful-api.dev/objects?id=4&id=6&id=10' \ --data ''

📌 Exemple Response:

[
    {
        "id": "4",
        "name": "Apple iPhone 11, 64GB",
        "data": {
            "price": 389.99,
            "color": "Purple"
        }
    },
    {
        "id": "6",
        "name": "Apple AirPods",
        "data": {
            "generation": "3rd",
            "price": 120
        }
    },
    {
        "id": "10",
        "name": "Apple iPad Mini 5th Gen",
        "data": {
            "Capacity": "64 GB",
            "Screen size": 7.9
        }
    }
]

➤ Exa

➤ Exemple 2 : récupérer un objet spécifique via son ID

🔗 URL :

https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d

🟦 cURL Example (GET)

curl --location 'https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d' \ --data ''

📌 Exemple Response:

{
    "id": "ff8081819782e69e019a41218336270d",
    "name": "Apple Testing update MacBook Pro 16",
    "data": {
        "year": 2019,
        "price": 1849.99,
        "CPU model": "Intel Core i9",
        "Hard disk size": "1 TB"
    }
}

✅ La méthode GET ne modifie jamais les données.

Elle sert uniquement à lire / afficher.



 2. POST — Créer une nouvelle ressource

🔗 URL :

https://api.restful-api.dev/objects

📦 Corps (Body) :

{ "name": "shikha MacBook Pro 16", "data": { "year": 2019, "price": 1849.99, "CPU model": "Intel Core i9", "Hard disk size": "1 TB" } }

🟦 cURL Exemple (POST)


curl --location 'https://api.restful-api.dev/objects' \ --header 'Content-Type: application/json' \ --data '{ "name": "Apple Testing MacBook Pro 16", "data": { "year": 2019, "price": 1849.99, "CPU model": "Intel Core i9", "Hard disk size": "1 TB" } }'

📌 Exemple Response:
{
    "id": "ff8081819782e69e019a44762e9b2aee",
    "name": "Apple Testing MacBook Pro 16",
    "createdAt": "2025-11-02T12:06:27.227+00:00",
    "data": {
        "year": 2019,
        "price": 1849.99,
        "CPU model": "Intel Core i9",
        "Hard disk size": "1 TB"
    }
}

✅ La méthode POST crée un nouvel enregistrement.

Le serveur génère automatiquement un ID unique.



🔄3. PUT — Mise à jour complète (replace toute la ressource)

🔗 URL :

https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d

📦 Corps (Body):

{ "name": "Shikha MacBook Pro 16", "data": { "year": 2019, "price": 1849.99, "CPU model": "Intel Core i9", "Hard disk size": "1 TB" } }


🟦 cURL Exemple (PUT)

curl --location --request PUT 'https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d' \ --header 'Content-Type: application/json' \ --data '{ "name": "Apple Testing update MacBook Pro 16", "data": { "year": 2019, "price": 1849.99, "CPU model": "Intel Core i9", "Hard disk size": "1 TB" } }'

📌 Exemple Response:

{
    "id": "ff8081819782e69e019a41218336270d",
    "name": "Apple Testing update MacBook Pro 16",
    "updatedAt": "2025-11-02T12:08:01.394+00:00",
    "data": {
        "year": 2019,
        "price": 1849.99,
        "CPU model": "Intel Core i9",
        "Hard disk size": "1 TB"
    }
}

✅ PUT remplace toute la ressource existante par celle envoyée.



 4. PATCH — Mise à jour partielle

📌 PATCH modifie uniquement une partie de l’objet (exemple : changer seulement le nom).

🔗 URL :

https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d

📦 Corps (Body) :

{ "name": "Apple MacBook Pro 16 (Updated Name)" }

🟦 Exemple cURL (PATCH)

curl --location --request PATCH 'https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d' \ --header 'Content-Type: application/json' \ --data '{ "name": "Apple MacBook Pro 16 (Updated Name)" }'

📌 Exemple Response:

{
    "id": "ff8081819782e69e019a41218336270d",
    "name": "Apple MacBook Pro 16 (Updated Name)",
    "updatedAt": "2025-11-02T12:09:19.622+00:00",
    "data": {
        "year": 2019,
        "price": 1849.99,
        "CPU model": "Intel Core i9",
        "Hard disk size": "1 TB"
    }
}

✅ PATCH modifie seulement les champs envoyés, sans écraser le reste.



🗑️ 5. DELETE — Supprimer une ressource

📌 Supprime un objet de la base de données.

🔗 URL :

https://api.restful-api.dev/objects/ff8081819782e69e019a41218336270d

🟦 Exemple cURL (DELETE)

curl --location --request DELETE 'https://api.restful-api.dev/objects/ff8081819782e69e019a44762e9b2aee' \ --data ''

📌 Exemple Response:

{
    "message": "Object with id = ff8081819782e69e019a44762e9b2aee has been deleted."
}


➡️ Après DELETE, une requête GET sur le même ID retournera “not found”.



🎯 Résumé des méthodes REST

MéthodeAction CRUDUtilisation
GETReadLire / afficher des données
POSTCreateCréer une nouvelle ressource
PUTUpdateModifier entièrement une ressource
PATCHModifyModifier partiellement
DELETEDeleteSupprimer une ressource

✅ Conclusion

Vous savez maintenant utiliser les cinq méthodes les plus importantes des REST APIs :

  • GET pour récupérer

  • POST pour créer

  • PUT pour remplacer complètement

  • PATCH pour modifier partiellement

  • DELETE pour supprimer

Ces concepts sont utilisés dans :

  • Postman

  • API Web

  • Développement backend (Java, Spring Boot, Node.js, Python, Camunda, jBPM)


💼 Support professionnel disponible


Si vous rencontrez des problèmes sur des projets réels liés au développement backend d’entreprise ou à l’automatisation des workflows, je propose des services de conseil payants, de débogage en production, de support projet et de formations ciblées.

Les technologies couvertes incluent Java, Spring Boot, PL/SQL, Azure, ainsi que l’automatisation des workflows (jBPM, Camunda BPM, RHPAM).


Comments

Popular posts from this blog

jBPM Installation Guide: Step by Step Setup

Scopes of Signal in jBPM

OOPs Concepts in Java | English | Object Oriented Programming Explained