Skip to main content
POST
Assembla una cartella contratto
POST https://api-datahub.octoparse.com/v1/data-apps/contract/assemble Autenticazione: nessuna. Accesso anonimo consentito. Unisce una cartella del contratto (una mappa di file indicizzata per percorso relativo, con l’ordine preservato) in un unico manifest autonomo. Questo endpoint è l’unica fonte di riferimento per le regole di assemblaggio. La procedura guidata di importazione del portale e l’autocontrollo dello skill del contratto lo usano entrambi. File slot: dataapp.json/⟦1/output_schema.json/runtime.json/pricing.json/examples.json ⟧/README.md (i nomi dei file non fanno distinzione tra maiuscole e minuscole; le forme punteggiate come input.schema.json sono accettate e normalizzate in picked). Prezzi ed esempi possono anche essere inseriti in dataapp.json. Il manifesto unito passa attraverso la convalida completa lato autore (stesse regole di Convalida un manifesto). Consegnabile solo quando issues è vuoto. Le anomalie recuperabili (file mancanti, collisioni di nomi tra livelli, file non contrattuali ignorati, mancata corrispondenza dei nomi delle cartelle e così via) restituiscono come strutturato warnings (code + params, localizzato dal livello di presentazione) e non sono errori. Hard failure (400): un file slot non è JSON valido, ha forma sbagliata (examples.json deve essere array; gli altri slot sono oggetti) o supera 1MB; nessun file contratto; size totale oltre 12MB. Il path contratto copre solo api-kind; runtime.kind=code produce un issue. L’8° file opzionale i18n.json ({source, locales}, fino a 4MB) non viene unito nel manifest. È parsato e restituito come translations perché il caller lo salvi tramite gli endpoint di traduzione. source dovrebbe allinearsi a source_locale dell’app. Accesso anonimo consentito: l’assembly è funzione pura del body, non legge né scrive dati piattaforma; unici gate i limiti di size file/totale.

Richiesta

Body della richiesta

object
obbligatorio
Mappa dei file. Le chiavi sono percorsi relativi; i valori sono il testo dei file.

Esempio di richiesta

Risposta

200 successo

Il payload è wrappato in data. Campi:
object
obbligatorio
Oggetto manifest unito.
string[]
Mappa dei file slot effettivamente riconosciuti.
string
object[]
Problemi di validazione. Vuoto significa pronto per la consegna.
object[]
Avvisi strutturati.
object
Contenuto analizzato di i18n.json, oppure null se assente.

Errori

Le risposte di errore usano {"error": {code, category, message, retryable}}. Vedi Errori.

Librerie client

Gli SDK Python e JavaScript non wrappano ancora questo endpoint. Chiama REST direttamente.