API TOML vers JSON#

L'API TOML vers JSON convertit un fichier TOML au format JSON en une seule requête vers POST /v1/convert/toml-to-json. Envoyez un fichier .toml en multipart form data et recevez directement du JSON mis en forme, indenté avec 2 espaces, ou définissez direct_download=false pour obtenir des métadonnées avec une URL de téléchargement présignée. Les valeurs datetime TOML sont préservées sous forme de chaînes ISO-8601.


Endpoint#

POST /v1/convert/toml-to-json

Content-Type : multipart/form-data

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

Format de sortie : .json (application/json)


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 .toml à 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 .json est ajoutée automatiquement.
direct_download boolean Non true À true, renvoie les octets JSON bruts. À false, renvoie des métadonnées avec une URL de téléchargement présignée.

Règles de conversion#

Correspondance directe de TOML vers JSON :

[database]
host = "localhost"
port = 5432

[database.credentials]
user = "admin"
password = "secret"

features = ["auth", "logging"]

Devient :

{
  "database": {
    "host": "localhost",
    "port": 5432,
    "credentials": {
      "user": "admin",
      "password": "secret"
    }
  },
  "features": ["auth", "logging"]
}
  • Les tables TOML deviennent des objets JSON
  • Les tableaux TOML deviennent des tableaux JSON
  • Les valeurs datetime TOML sont sérialisées en chaînes ISO-8601
  • La sortie est indentée avec 2 espaces, unicode préservé

Réponse#

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

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

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

{
    "presigned_url": "https://spaces.example.com/...",
    "object_key": "env/files/{project_id}/toml-to-json/config_20260405_123456789.json",
    "filename": "config_20260405_123456789.json",
    "file_size": 1234,
    "conversion_time_seconds": 0.03
}

Exemples de code#

Python#

import requests

with open("config.toml", "rb") as f:
    response = requests.post(
        "https://api.enconvert.com/v1/convert/toml-to-json",
        headers={"X-API-Key": "sk_your_private_key"},
        files={"file": ("config.toml", f, "application/toml")}
    )

with open("config.json", "wb") as out:
    out.write(response.content)

Node.js#

const form = new FormData();
form.append("file", fs.createReadStream("config.toml"));

const response = await fetch("https://api.enconvert.com/v1/convert/toml-to-json", {
    method: "POST",
    headers: { "X-API-Key": "sk_your_private_key" },
    body: form
});

const json = await response.json();

PHP#

$ch = curl_init("https://api.enconvert.com/v1/convert/toml-to-json");
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.toml")]
]);
$json = curl_exec($ch);
curl_close($ch);

Go#

body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
part, _ := writer.CreateFormFile("file", "config.toml")
file, _ := os.Open("config.toml")
io.Copy(part, file)
writer.Close()

req, _ := http.NewRequest("POST", "https://api.enconvert.com/v1/convert/toml-to-json", 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 .toml
400 Bad Request Contenu TOML invalide
400 Bad Request La conversion TOML vers JSON a échoué
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
Conversions mensuelles Selon le plan

Questions fréquentes#

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

Envoyez une requête POST multipart/form-data vers POST /v1/convert/toml-to-json avec votre fichier .toml 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 JSON bruts.

Comment les valeurs datetime TOML sont-elles représentées dans la sortie JSON ?#

Les valeurs datetime TOML sont sérialisées en chaînes ISO-8601. Les tables TOML deviennent des objets JSON et les tableaux TOML des tableaux JSON, avec une indentation de 2 espaces et l'unicode préservé.

Puis-je obtenir une URL de téléchargement présignée au lieu du JSON brut ?#

Oui. Définissez direct_download=false et l'API renvoie des métadonnées JSON incluant presigned_url, object_key, filename, file_size et conversion_time_seconds.

Pourquoi ma conversion TOML vers JSON renvoie-t-elle une erreur 400 ?#

Un 400 Bad Request est renvoyé lorsque le fichier envoyé n'est pas un .toml, que le contenu TOML est invalide ou que la conversion elle-même échoue. Le fichier doit aussi être encodé en UTF-8.