L'utilisation d'API, notamment REST entraîne l'usage de curl.
Voici une page qui illustre bien son utilisation :
https://linuxize.com/post/curl-rest-api/
quelques extraits traduits :
La méthode POST est utilisée pour créer une ressource sur le serveur. Si la ressource existe, elle est écrasée.
La commande suivante permet d'exécuter une requête POST utilisant des données précisées via l'option -d :
curl -X POST -d "userId=5&title=Hello World&body=Post body." https://jsonplaceholder.typicode.com/posts
Le type du corps de la requête est défini par l'en-tête Content-Type. Par défaut, notamment si non précisé, curl utilisera Content-Type: application/x-www-form-urlencoded.
Pour envoyer des données formatés au format JSON, il faut définir le type à application/json :
curl -X POST \ -H "Content-Type: application/json" \ -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \ https://jsonplaceholder.typicode.com/posts # ou plus simplement src : https://daniel.haxx.se/blog/2022/02/02/curl-dash-dash-json/ # ne fonctionne pas avec curl v7.81 sous ubuntu 22.04 curl --json '{"userId": 5, "title": "Hello World", "body": "Post body."}' https://jsonplaceholder.typicode.com/posts
Pour utiliser un token de sécurité et préciser que notre paramètre JSON est un objet :
curl -X POST -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -H "Prefer: params=single-object" \ -d '{"userId": 5, "title": "Hello World", "body": "Post body."}' \ https://mon-web-service.mon-domaine.fr/rpc/ma-fonction
export TOKEN="eyJhbGciOiJIUzI1NiJ9.eyJyb2xlIjoic2lnX3VzZXIifQ.Q5gbPnMVYUwSxdjFzU3aMm2RVUAXN5dyfCc8__OVFaI"