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.