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 42Devient :toml value = 42
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.