Skip to main content
POST
Assembler un dossier de contrat
POST https://api-datahub.octoparse.com/v1/data-apps/contract/assemble Authentification : aucune. Accès anonyme autorisé. Fusionne un dossier de contrat (map de fichiers par chemin relatif, ordre conservé) en un manifest autonome. Cet endpoint est la seule source de vérité des règles d’assemblage. Le wizard d’import du portail et le self-check du skill de contrat l’utilisent. Fichiers de slot : dataapp.json / input_schema.json / output_schema.json / runtime.json / pricing.json / examples.json / README.md (noms insensibles à la casse ; formes pointées comme input.schema.json acceptées et normalisées dans picked). Tarifs et exemples peuvent aussi être inline dans dataapp.json. Le manifest fusionné passe la validation complète côté auteur (mêmes règles que Valider un manifest). Livrable seulement si issues est vide. Les anomalies récupérables (fichiers manquants, collisions de noms entre couches, fichiers non-contrat ignorés, décalage de nom de dossier, etc.) reviennent en warnings structurés (code + params, localisés par la couche de présentation) et ne sont pas des erreurs. Échecs durs (400) : un fichier de slot n’est pas un JSON valide, a une mauvaise forme (examples.json doit être un array, etc.) ou un fichier dépasse 1 Mo / le total 4 Mo. Soft : anomalies récupérables en warnings. Le 8e fichier optionnel i18n.json ({source, locales}, jusqu’à 4 Mo) n’est pas fusionné dans le manifest : validé en forme et renvoyé séparément dans translations pour que l’appelant décide quand sauver les overlays. Sans fichier, translations est null. Accès anonyme autorisé : l’assemblage est une fonction pure du corps, ne lit ni n’écrit de données plateforme, et les limites de taille sont la seule porte.

Requête

Corps de la requête

object
requis
Map de fichiers. Clés = chemins relatifs ; valeurs = texte du fichier.

Exemple de requête

Réponse

200 succès

La charge utile est encapsulée dans data. Champs :
object
requis
Objet manifest fusionné.
string[]
Map des fichiers de slot réellement reconnus.
string
object[]
Problèmes de validation. Vide = livrable.
object[]
Avertissements structurés.
object
Contenu parsé de i18n.json, ou null s’il est absent.

Erreurs

Les réponses d’erreur utilisent {"error": {code, category, message, retryable}}. Voir Erreurs.

Bibliothèques clientes

Les SDK Python et JavaScript n’encapsulent pas encore cet endpoint. Appelez REST directement.