API JSON vers YAML#
Convertissez un fichier JSON en YAML avec une seule requête vers POST /v1/convert/json-to-yaml. La conversion est une correspondance directe sans restructuration : la sortie est du YAML lisible en style bloc, avec l'ordre original des clés et les caractères unicode préservés. Par défaut, la réponse contient les octets YAML bruts ; définissez direct_download=false pour recevoir à la place des métadonnées avec une URL de téléchargement présignée.
Endpoint#
POST /v1/convert/json-to-yaml
Content-Type : multipart/form-data
Entrée acceptée : fichiers .json (encodés en UTF-8)
Format de sortie : .yaml (application/x-yaml)
Authentification#
Nécessite soit une clé API privée, soit un jeton JWT issu d'une clé publique.
X-API-Key: sk_your_private_key
Ou :
Authorization: Bearer <jwt_token>
Paramètres de la requête#
| Paramètre | Type | Requis | Par défaut | Description |
|---|---|---|---|---|
file |
file | Oui | -- | Le fichier .json à convertir. Doit être encodé en UTF-8. |
output_filename |
string |
Non | Nom du fichier d'entrée | Nom de fichier de sortie personnalisé. L'extension .yaml est ajoutée automatiquement. |
direct_download |
boolean |
Non | true |
Lorsque true, renvoie les octets YAML bruts. Lorsque false, renvoie des métadonnées avec une URL de téléchargement présignée. |
Règles de conversion#
Correspondance directe de JSON vers YAML sans restructuration :
{
"database": {
"host": "localhost",
"port": 5432,
"credentials": {
"user": "admin",
"password": "secret"
}
},
"features": ["auth", "logging"]
}
Devient :
database:
host: localhost
port: 5432
credentials:
user: admin
password: secret
features:
- auth
- logging
- La sortie utilise le style bloc (multi-ligne, lisible), et non le style flux
- L'ordre des clés est préservé par rapport au JSON original
- Les caractères unicode sont préservés tels quels
Réponse#
Téléchargement direct (direct_download=true, par défaut)#
HTTP 200 OK
Content-Type: application/x-yaml
Content-Disposition: inline; filename="config_20260405_123456789.yaml"
Réponse avec métadonnées (direct_download=false)#
{
"presigned_url": "https://spaces.example.com/...",
"object_key": "env/files/{project_id}/json-to-yaml/config_20260405_123456789.yaml",
"filename": "config_20260405_123456789.yaml",
"file_size": 1234,
"conversion_time_seconds": 0.03
}
Exemples de code#
Python#
import requests
with open("config.json", "rb") as f:
response = requests.post(
"https://api.enconvert.com/v1/convert/json-to-yaml",
headers={"X-API-Key": "sk_your_private_key"},
files={"file": ("config.json", f, "application/json")}
)
with open("config.yaml", "wb") as out:
out.write(response.content)
Node.js#
const form = new FormData();
form.append("file", fs.createReadStream("config.json"));
const response = await fetch("https://api.enconvert.com/v1/convert/json-to-yaml", {
method: "POST",
headers: { "X-API-Key": "sk_your_private_key" },
body: form
});
const yaml = await response.text();
PHP#
$ch = curl_init("https://api.enconvert.com/v1/convert/json-to-yaml");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["X-API-Key: sk_your_private_key"],
CURLOPT_POSTFIELDS => ["file" => new CURLFile("config.json", "application/json")]
]);
$yaml = curl_exec($ch);
curl_close($ch);
Go#
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "config.json")
file, _ := os.Open("config.json")
io.Copy(part, file)
writer.Close()
req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/json-to-yaml", body)
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("X-API-Key", "sk_your_private_key")
resp, _ := http.DefaultClient.Do(req)
Réponses d'erreur#
| Statut | Condition |
|---|---|
400 Bad Request |
Le fichier n'est pas un fichier .json |
400 Bad Request |
Contenu JSON invalide |
400 Bad Request |
Échec de la conversion JSON vers YAML |
401 Unauthorized |
Clé API / jeton JWT manquant ou invalide |
402 Payment Required |
Quota mensuel d'ops épuisé |
413 Payload Too Large |
Le fichier dépasse la taille maximale du forfait |
Limites#
| Limite | Valeur |
|---|---|
| Taille de fichier max | Dépend du forfait (Founding : 5 MB) |
| Encodage d'entrée | UTF-8 uniquement |
| Conversions mensuelles | Dépend du forfait |
Questions fréquentes#
Comment convertir du JSON en YAML avec une API REST ?#
Envoyez une requête POST multipart/form-data à /v1/convert/json-to-yaml avec votre fichier .json dans le champ file, authentifiée avec un en-tête X-API-Key ou un jeton JWT Authorization: Bearer. La réponse est le YAML converti.
La conversion JSON vers YAML préserve-t-elle l'ordre des clés ?#
Oui. L'ordre des clés du JSON original est préservé, les caractères unicode sont conservés tels quels et la structure est mappée directement sans restructuration.
La sortie YAML est-elle en style bloc ou en style flux ?#
La sortie utilise le style bloc (du YAML multi-ligne, lisible) et non le style flux en ligne, comme le montre l'exemple de conversion sur cette page.
Puis-je obtenir une URL de téléchargement présignée au lieu des octets YAML bruts ?#
Oui. Définissez direct_download=false pour recevoir une réponse de métadonnées avec presigned_url, object_key, filename, file_size et conversion_time_seconds.
Pourquoi l'API JSON vers YAML renvoie-t-elle 400 Bad Request ?#
Un 400 est renvoyé lorsque le fichier n'est pas un fichier .json, que le contenu n'est pas du JSON valide ou que la conversion échoue. Les fichiers dépassant la limite de taille de votre forfait renvoient 413 Payload Too Large.