API JSON vers TOML#

L'API JSON vers TOML convertit un fichier JSON au format TOML en une seule requête vers POST /v1/convert/json-to-toml. Envoyez un fichier .json en multipart form data et recevez le TOML converti directement, ou définissez direct_download=false pour obtenir des métadonnées avec une URL de téléchargement présignée. Les tableaux JSON sont encapsulés sous une clé items et les valeurs scalaires sous une clé value, car TOML exige une table de premier niveau.


Endpoint#

POST /v1/convert/json-to-toml

Content-Type : multipart/form-data

Entrée acceptée : fichiers .json (encodés en UTF-8)

Format de sortie : .toml (application/toml)


Authentification#

Nécessite une clé API privée ou un token JWT obtenu à partir d'une clé publique.

X-API-Key: sk_your_private_key

Ou :

Authorization: Bearer <jwt_token>

Paramètres de requête#

Paramètre Type Obligatoire Défaut Description
file file Oui -- Le fichier .json à convertir. Doit être encodé en UTF-8. Ne doit contenir aucune valeur null.
output_filename string Non Nom du fichier d'entrée Nom de fichier de sortie personnalisé. L'extension .toml est ajoutée automatiquement.
direct_download boolean Non true À true, renvoie les octets TOML bruts. À false, renvoie des métadonnées avec une URL de téléchargement présignée.

Règles de conversion#

  • Un objet JSON passe tel quel : json {"database": {"host": "localhost", "port": 5432}} Devient : toml [database] host = "localhost" port = 5432

  • Un tableau JSON est encapsulé sous une clé items (TOML exige une table de premier niveau) : json [1, 2, 3] Devient : toml items = [1, 2, 3]

  • Une valeur scalaire est encapsulée sous une clé value : json 42 Devient : toml value = 42

Important : TOML ne prend pas en charge les valeurs null. Si votre JSON contient la moindre valeur null, la conversion échoue avec une erreur 400. Supprimez ou remplacez les valeurs null avant de convertir.

Réponse#

Téléchargement direct (direct_download=true, par défaut)#

HTTP 200 OK
Content-Type: application/toml
Content-Disposition: inline; filename="config_20260405_123456789.toml"

Réponse avec métadonnées (direct_download=false)#

{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/json-to-toml/config_20260405_123456789.toml",
    "filename": "config_20260405_123456789.toml",
    "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-toml",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("config.json", f, "application/json")}
    )

with open("config.toml", "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-toml", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

const toml = await response.text();

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/json-to-toml");
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")]
]);
$toml = 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-toml", 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 La conversion JSON vers TOML a échoué (généralement à cause de valeurs null)
401 Unauthorized Clé API ou token JWT manquant ou invalide
402 Payment Required Quota mensuel d'ops épuisé
413 Payload Too Large Le fichier dépasse la taille maximale du plan

Limites#

Limite Valeur
Taille max. de fichier Selon le plan (Founding : 5 MB)
Encodage d'entrée UTF-8 uniquement
Valeurs null Non prises en charge (limitation de TOML)
Conversions mensuelles Selon le plan

Questions fréquentes#

Comment convertir du JSON en TOML avec une API REST ?#

Envoyez une requête POST multipart/form-data vers POST /v1/convert/json-to-toml avec votre fichier .json dans le champ file, en vous authentifiant via un en-tête X-API-Key ou un token JWT Authorization: Bearer. Par défaut, le corps de la réponse contient les octets TOML bruts.

Pourquoi ma conversion JSON vers TOML échoue-t-elle avec une erreur 400 ?#

TOML ne prend pas en charge les valeurs null : tout JSON contenant null échoue avec un 400 Bad Request. Un 400 est aussi renvoyé lorsque le fichier envoyé n'est pas un .json ou que le contenu JSON est invalide.

Puis-je convertir un tableau JSON ou une valeur scalaire en TOML ?#

Oui. Comme TOML exige une table de premier niveau, un tableau JSON est encapsulé sous une clé items et une valeur scalaire sous une clé value.

Comment obtenir une URL de téléchargement au lieu du fichier TOML brut ?#

Définissez direct_download=false dans la requête. L'API renvoie alors des métadonnées JSON incluant presigned_url, object_key, filename, file_size et conversion_time_seconds.

Quelle limite de taille de fichier s'applique aux conversions JSON vers TOML ?#

La taille maximale de fichier dépend du plan (plan Founding : 5 MB). Les fichiers dépassant la limite de votre plan renvoient 413 Payload Too Large.