Service en ligne 100% Gratuit Utilitaires Web AngularForAll

- Testeur API REST en ligne — lite Postman

Api-Rest Testeur-Api Postman Fetch-Api Proxy-Cors Http-Methods Debug-Api Json-Response Bearer-Token Api-Tester-Online Rest-Client Http-Headers Angular

Testez vos APIs REST dans le navigateur : GET, POST, PUT, DELETE, headers custom, body JSON, proxy CORS intégré et réponse formatée avec coloration syntaxique.

🚀

Testeur d'API REST en ligne

Exemples :
Désactivez pour un appel fetch() direct depuis le navigateur.

Saisissez une URL et cliquez sur Envoyer.

Testeur d'API REST : votre Postman dans le navigateur

Les APIs REST sont partout — microservices, services tiers, backends mobiles, intégrations SaaS. Chaque développeur doit pouvoir tester un endpoint en quelques secondes, sans installer Postman, sans configurer un environnement local, sans dépendre d'une connexion VPN. Ce testeur en ligne répond exactement à ce besoin : collez votre URL, sélectionnez votre méthode, ajoutez vos headers et votre body JSON, puis observez la réponse formatée en temps réel.

Qu'est-ce qu'une API REST ?

Une API REST (Representational State Transfer) est une interface de programmation qui expose des ressources via des URLs et les manipule à travers les méthodes du protocole HTTP. Elle repose sur six contraintes architecturales définies par Roy Fielding en 2000 : architecture client-serveur, sans état (stateless), mise en cache, interface uniforme, système en couches et code à la demande (optionnel).

En pratique, une API REST expose des endpoints du type GET /users, POST /users, PUT /users/42, DELETE /users/42. Chaque endpoint représente une ressource ou une collection de ressources, et la méthode HTTP détermine l'opération à effectuer.

Principe REST Description Exemple concret
StatelessChaque requête est indépendanteToken JWT dans chaque header
RessourcesTout est une ressource identifiable/products/123
ReprésentationsJSON, XML, HTML selon AcceptAccept: application/json
HATEOASLiens hypermedia dans les réponses{"_links": {"self": ...}}
CacheableRéponses marquables comme cachablesCache-Control: max-age=3600

Méthodes HTTP : GET, POST, PUT, DELETE, PATCH

Les méthodes HTTP sont le verbe de l'opération. Chacune a une sémantique précise définie dans la RFC 7231. Les connaître est indispensable pour concevoir et tester des APIs cohérentes.

  • GET — Lire une ressource. Idempotent, sans effet de bord. Aucun body.
  • POST — Créer une ressource. Non-idempotent. Body JSON obligatoire.
  • PUT — Remplacer une ressource complète. Idempotent. Body complet requis.
  • PATCH — Modifier partiellement. Idempotent recommandé. Body partiel.
  • DELETE — Supprimer une ressource. Idempotent. Généralement sans body.
  • HEAD — Comme GET mais sans corps de réponse. Utile pour vérifier l'existence.
  • OPTIONS — Lister les méthodes autorisées sur un endpoint (CORS preflight).

Idempotent signifie que répéter la même requête produit le même résultat. Supprimer 10 fois la même ressource retourne 404 après la première suppression, mais l'état final du serveur est identique : la ressource n'existe plus. GET, PUT, DELETE, HEAD, OPTIONS sont idempotents. POST ne l'est pas (chaque appel crée une nouvelle ressource).

💡 Bonne pratique : Retournez toujours 201 Created avec un header Location: /resources/42 après un POST réussi. Cela permet au client de connaître l'URL de la ressource créée sans faire un second GET.

Headers HTTP essentiels pour les APIs

Les headers HTTP transportent les métadonnées de la requête et de la réponse. Maîtriser les headers les plus courants vous permet de déboguer rapidement et de configurer correctement vos appels API.

Header Sens Valeur typique
Content-TypeFormat du body envoyéapplication/json
AcceptFormat attendu en réponseapplication/json
AuthorizationAuthentificationBearer eyJhbGci…
X-API-KeyClé APIsk-abc123…
Cache-ControlPolitique de cacheno-cache
X-Request-IDID de traçabilitéUUID v4
If-None-MatchCache conditionnel (ETag)"abc123"

L'outil permet d'ajouter autant de headers que nécessaire via le panneau "Headers de requête". Cliquez sur + Ajouter un header, saisissez la clé (ex : Authorization) et la valeur (ex : Bearer votre_token).

Corps de requête JSON : syntaxe et bonnes pratiques

Pour les requêtes POST, PUT et PATCH, le corps de la requête transporte les données à envoyer au serveur. En REST moderne, JSON (JavaScript Object Notation) est le format universel. Quelques exemples pratiques :

// Création d'un utilisateur (POST /users)
{
    "name": "Alice Dupont",
    "email": "alice@example.com",
    "role": "developer",
    "active": true
}

// Mise à jour partielle (PATCH /users/42)
{
    "email": "alice.new@example.com"
}

// Création avec relation imbriquée (POST /orders)
{
    "customer_id": 42,
    "items": [
        { "product_id": 1, "quantity": 3 },
        { "product_id": 7, "quantity": 1 }
    ],
    "shipping_address": {
        "street": "12 rue de la Paix",
        "city": "Paris",
        "zip": "75001"
    }
}
📝 Rappel : Pensez toujours à inclure Content-Type: application/json dans vos headers quand vous envoyez du JSON. Sans ce header, certaines APIs rejetteront votre requête avec un 415 Unsupported Media Type. L'outil ajoute ce header par défaut.

Le bouton 🔄 Formater JSON reformate automatiquement votre corps de requête avec une indentation lisible. Il valide également la syntaxe JSON et affiche une alerte si le JSON est malformé.

Authentification API : Bearer, Basic, API Key

La grande majorité des APIs nécessitent une authentification. Les trois mécanismes les plus courants se configurent tous dans les headers de requête.

Bearer Token (JWT / OAuth 2.0)

// Header à ajouter :
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI0MiIsIm5hbWUiOiJBbGljZSJ9.xxx

// Décodage côté serveur : le token contient user ID, rôles, expiration
// Utilisé par : GitHub API, Stripe, Auth0, Google APIs, la plupart des APIs modernes

Basic Authentication

// Username:password encodés en Base64
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=

// En JavaScript :
const encoded = btoa('username:password');
// En PHP :
$encoded = base64_encode('username:password');

// Note : TOUJOURS sur HTTPS, jamais en HTTP clair

API Key dans le header

// OpenAI, SendGrid, Twilio, WeatherAPI…
X-API-Key: sk-proj-abcdefghijklmnop

// Ou dans le header Authorization :
Authorization: ApiKey votre_cle_api

// Ou en query param (moins sécurisé, éviter) :
GET /endpoint?api_key=votre_cle

Codes de statut HTTP : comprendre les réponses

Le code de statut HTTP est la première information à lire dans une réponse API. Il indique immédiatement si la requête a réussi, échoué, ou nécessite une action.

CodeSignificationContexte typique
200 OKSuccèsGET réussi, ressource retournée
201 CreatedRessource crééePOST réussi
204 No ContentSuccès sans réponseDELETE ou PUT sans retour
301 / 302RedirectionURL déplacée
304 Not ModifiedCache valideRéponse servie depuis le cache
400 Bad RequestRequête malforméeJSON invalide, champ manquant
401 UnauthorizedNon authentifiéToken manquant ou expiré
403 ForbiddenNon autoriséDroits insuffisants
404 Not FoundRessource introuvableID inexistant
422 UnprocessableValidation échouéeEmail invalide, valeur hors plage
429 Too Many RequestsRate limit atteintQuota API dépassé
500 Server ErrorErreur serveurBug back-end, exception non gérée
503 UnavailableService indisponibleMaintenance, overload

Notre testeur affiche le code de statut avec un badge coloré : 200 OK en vert, 4xx en jaune, 5xx en rouge — pour une lecture instantanée.

Proxy CORS : pourquoi et comment ça fonctionne

CORS (Cross-Origin Resource Sharing) est un mécanisme de sécurité du navigateur qui bloque par défaut les requêtes JavaScript vers un domaine différent de la page courante. Concrètement, si votre page est sur angularforall.com et que vous faites un fetch('https://api.tierce.com/data'), le navigateur vérifie si api.tierce.com autorise les requêtes cross-origin via ses headers de réponse.

// L'API doit retourner ces headers pour autoriser le cross-origin :
Access-Control-Allow-Origin: https://angularforall.com
// Ou pour tout le monde :
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, PUT, DELETE
Access-Control-Allow-Headers: Content-Type, Authorization

Si ces headers sont absents ou restrictifs, le navigateur bloque la requête avec une erreur CORS. Le proxy PHP de cet outil contourne cette limitation : votre navigateur envoie la requête à notre serveur PHP (même origine), qui la relaie côté serveur vers l'API cible, puis retourne la réponse. Côté serveur, il n'y a pas de restriction CORS.

🔒 Sécurité du proxy : Le proxy intègre une protection anti-SSRF (Server-Side Request Forgery) qui bloque les requêtes vers des IPs privées (192.168.x.x, 10.x.x.x, 127.x.x.x, 172.16-31.x.x). Il applique également un rate limiting de 30 requêtes par minute par IP pour prévenir les abus.

Cas d'usage : tests sans Postman

Voici les situations concrètes où ce testeur en ligne remplace avantageusement Postman ou Insomnia :

  • Onboarding rapide : un nouveau développeur teste votre API sans rien installer. Partagez simplement l'URL de cet outil.
  • Vérification d'un webhook : envoyez un POST avec le payload exact attendu par votre endpoint pour valider la structure JSON.
  • Debug de token JWT : ajoutez votre token Bearer et vérifiez si l'API retourne 200 ou 401 pour isoler un problème d'authentification.
  • Test d'APIs publiques : OpenWeatherMap, GitHub API, JSONPlaceholder — explorez les réponses sans quitter le navigateur.
  • Formation et tutoriels : montrez en live le fonctionnement des verbes HTTP sans avoir besoin d'un environnement de développement.
  • Vérification de déploiement : après un déploiement, tapez quelques endpoints critiques pour valider que le service répond correctement.
// Exemple : tester l'API JSONPlaceholder
GET https://jsonplaceholder.typicode.com/posts/1

// Réponse attendue (200 OK) :
{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident...",
    "body": "quia et suscipit\nsuscipit recusandae..."
}

// Créer un post fictif :
POST https://jsonplaceholder.typicode.com/posts
Content-Type: application/json

{
    "title": "Mon article de test",
    "body": "Contenu du post",
    "userId": 1
}

// Réponse (201 Created) :
{
    "title": "Mon article de test",
    "body": "Contenu du post",
    "userId": 1,
    "id": 101
}

Questions fréquentes

Utilisez ce testeur en ligne : saisissez l'URL de votre endpoint, choisissez la méthode HTTP (GET, POST…), ajoutez vos headers et votre body JSON, puis cliquez sur Envoyer. La réponse s'affiche instantanément avec le code de statut et le corps formaté.

Oui. Le mode "Proxy PHP" contourne les restrictions CORS et permet de tester n'importe quelle API publique depuis le navigateur, même celles qui n'autorisent pas les requêtes cross-origin directes.

Non. L'outil ne stocke aucune donnée. En mode direct, la requête part de votre navigateur. En mode proxy, elle transite par notre serveur mais n'est jamais conservée en base de données.

Le mode direct utilise fetch() depuis votre navigateur et peut échouer si l'API ne supporte pas CORS. Le mode proxy PHP relaie la requête depuis le serveur, contournant les restrictions CORS et permettant de tester n'importe quelle API publique.

Conclusion

Un testeur d'API REST directement dans le navigateur élimine la friction du onboarding et accélère le débogage. Avec le support des 7 méthodes HTTP, des headers personnalisés, du body JSON formaté, de la coloration syntaxique de la réponse et d'un proxy anti-CORS côté PHP, cet outil couvre 95 % des besoins quotidiens d'un développeur sans rien installer.

Commencez par les presets JSONPlaceholder ou HTTPBin pour vous familiariser, puis testez vos propres APIs. Activez le mode proxy pour les APIs qui ne permettent pas les requêtes cross-origin depuis le navigateur.

Partager