Riferimento API
Tutte le API di questa pagina usano POST con un corpo della richiesta JSON. Ogni richiesta usa le Intestazioni di richiesta comuni, che non vengono ripetute per ciascuna API. La struttura esterna della risposta è descritta in Struttura di risposta unificata; la sezione "Risposta" di ogni API elenca solo i campi di business all'interno di data.
Domini
| Regione | Dominio |
|---|---|
| Cina continentale | https://open-api-gw.xgrids.cloud/ |
| Fuori dalla Cina continentale (inclusi Hong Kong, Macao e Taiwan) | https://open-api-gw.xgrids.com/ |
Intestazioni di richiesta comuni
Ogni API richiede i seguenti parametri di intestazione.
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| APP-ID | ID dell'applicazione | Ottenuto al momento della richiesta dell'applicazione | Sì | Nessuno |
| X-Timestamp | Timestamp della richiesta | Timestamp in secondi | Sì | Nessuno |
| X-Nonce | Stringa casuale | Solo lettere e cifre, da 16 a 32 caratteri. Regex ^[A-Za-z0-9]{16,32}$. Si consiglia UUID.randomUUID() senza - | Sì | Nessuno |
| X-Sign | Firma della richiesta | Verifica che la richiesta non sia stata manomessa e impedisce i replay. Vedi Meccanismo di firma | Sì | Nessuno |
| Content-Type | Tipo di contenuto | Sempre application/json | Sì | Nessuno |
| language | Lingua dei messaggi di risposta | zh-CN o en-US | No | zh-CN |
Struttura di risposta unificata
Tutte le API restituiscono la stessa struttura esterna. Il code esterno riflette solo l'esito a livello di API; per l'esito di business leggi data.bizCode.
| Nome | Significato | Regola |
|---|---|---|
| code | Codice di esito dell'API | 0 successo, 401 autenticazione non riuscita, 429 troppe richieste |
| msg | Descrizione dell'esito dell'API | — |
| data | Dati di business | — |
| data.bizCode | Codice di esito di business | 0 indica successo; per gli altri valori vedi Codici di errore |
| data.bizMsg | Messaggio di errore di business | — |
Nota: una chiamata ha esito positivo solo quando
code == 0edata.bizCode == 0.
Crea attività e ottieni credenziali di caricamento
Crea un'attività di modellazione e rilascia credenziali temporanee di cloud storage per caricare i dati di input.
Endpoint
POST /open-apis/spatial-model/v1/model/create
Limiti
| Voce | Limite |
|---|---|
| Concorrenza | 10 richieste / secondo |
| Validità delle credenziali temporanee | 12 ore |
| Regione di archiviazione dei dati | Associata al momento della richiesta dell'applicazione; non è necessario passarla |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelName | Nome dell'attività di modellazione | Meno di 50 caratteri | Sì | Nessuno |
| modelDes | Descrizione dell'attività | Meno di 200 caratteri | No | Vuoto |
| quality | Qualità della modellazione | "1" veloce, "2" standard, "3" lenta | No | "2" |
| autoRebuild | Avvia automaticamente la modellazione dopo il caricamento | 0 solo caricamento, 1 modellazione automatica dopo il caricamento | No | 1 |
| tags | Tag dell'attività | List<String>, meno di 20 elementi | No | Vuoto |
Risposta
| Nome | Tipo | Significato |
|---|---|---|
| data.modelId | Long | ID dell'attività di modellazione generato dal server |
| data.params | Object | Parametri delle credenziali temporanee per il caricamento dei dati |
| data.params.cloudService | String | Provider cloud che riceve il caricamento. OSS Alibaba Cloud, AWS Amazon, KS3 Kingsoft Cloud. Ogni integratore lavora di norma con un solo provider fisso, quindi non è necessario supportarli tutti |
| data.params.endpoint | String | Endpoint di caricamento del provider di cloud storage |
| data.params.region | String | Regione di archiviazione del provider di cloud storage |
| data.params.bucket | String | Bucket di caricamento del provider di cloud storage |
| data.params.savePath | String | Key della directory di destinazione dei file caricati. È il prefisso della directory input; aggiungi il percorso relativo di ogni file per formare la sua Key effettiva |
| data.params.accessKeyId | String | AccessKeyId temporaneo |
| data.params.accessKeySecret | String | AccessKeySecret temporaneo |
| data.params.securityToken | String | SecurityToken di caricamento |
| data.params.requestId | String | ID di questa richiesta |
Esempio di richiesta
POST /open-apis/spatial-model/v1/model/create HTTP/1.1
Host: open-api-gw.xgrids.com
APP-ID: your_app_id
X-Timestamp: 1791763200
X-Nonce: a3f91c2d8e7b4a6590fd12cb77ae40d1
X-Sign: 9mQk7xL2vTbR4pNw8sYcA1dHfZ3eJgU6oIyK0rVnBsM=
Content-Type: application/json
{
"modelName": "Design Commune C Facade",
"modelDes": "Nanshan, Shenzhen, LCC2 scene package",
"quality": "2",
"autoRebuild": 1,
"tags": ["facade", "nanshan"]
}
Esempio di risposta
{
"code": 0,
"msg": "success",
"data": {
"bizCode": 0,
"bizMsg": "",
"modelId": 100231987,
"params": {
"cloudService": "AWS",
"endpoint": "s3.ap-southeast-1.amazonaws.com",
"region": "ap-southeast-1",
"bucket": "your-bucket-name",
"savePath": "prd/spatial-model/{accountId}/{taskCode}/input/",
"accessKeyId": "ASIA****************",
"accessKeySecret": "wJalrXUtnFEMI/K7MDENG/bPxRfiCY****",
"securityToken": "IQoJb3JpZ2luX2VjE****",
"requestId": "b7f1e2a9-5c43-4d8e-9a10-6f2c3b84d517"
}
}
}
Avvia attività
Avvia manualmente la modellazione.
Endpoint
POST /open-apis/spatial-model/v1/model/start
Limiti
| Voce | Limite |
|---|---|
| Quando usarla | Solo quando l'attività è stata creata con autoRebuild = 0:① Si possono avviare solo le attività nello stato Caricamento completato (3); altrimenti viene restituito 100041018;② La directory input deve contenere almeno un file .lcc2 / .ply / .las; altrimenti viene restituito 100041019;③ L'avvio congela i crediti; se il saldo è insufficiente, viene restituito un codice di errore relativo ai crediti |
| Limite di frequenza | Limite di frequenza di 3 secondi per modelId |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | Restituito alla creazione dell'attività | Sì | Nessuno |
Risposta
Restituisce solo la Struttura di risposta unificata.
Esempio di richiesta
{
"modelId": 100231987
}
Ottieni di nuovo le credenziali di caricamento
Ottiene nuove credenziali temporanee di caricamento quando un caricamento si interrompe o le credenziali temporanee sono scadute.
Endpoint
POST /open-apis/spatial-model/v1/model/sts
Limiti
| Voce | Limite |
|---|---|
| Validità delle credenziali temporanee | 12 ore |
| Limite di frequenza | Limite di frequenza di 3 secondi per modelId; se le chiamate sono troppo frequenti viene restituito 10000003 |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | — | Sì | Nessuno |
Risposta
Uguale alla risposta di Crea attività e ottieni credenziali di caricamento (data.modelId e data.params.*).
Esempio di richiesta
{
"modelId": 100231987
}
Aggiorna stato di caricamento
Segnala lo stato di caricamento dei dati di input. Devi chiamare questa API al termine del caricamento; altrimenti la modellazione non si avvia.
Endpoint
POST /open-apis/spatial-model/v1/model/upload_status/update
Limiti
| Voce | Limite |
|---|---|
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | — | Sì | Nessuno |
| status | Stato di caricamento | 1 caricamento in corso, 2 in pausa, 3 riuscito, 4 non riuscito | Sì | Nessuno |
| uploadTime | Durata del caricamento | In millisecondi; consigliato quando il caricamento riesce | No | Vuoto |
| failedReason | Motivo dell'errore | Consigliato quando il caricamento non riesce | No | Vuoto |
Risposta
Restituisce solo la Struttura di risposta unificata.
Esempio di richiesta
{
"modelId": 100231987,
"status": 3,
"uploadTime": 184620
}
Annulla modellazione
Può essere chiamata solo per le attività in fase di modellazione.
- Si possono annullare solo le attività nello stato Modellazione in corso. Dopo l'annullamento, lo stato dell'attività diventa Modellazione non riuscita.
- L'annullamento detrae i crediti per l'utilizzo già consumato; gli eventuali crediti congelati in eccesso tornano nel saldo.
- I crediti vengono di solito regolati entro pochi minuti, al massimo circa 10 minuti.
Endpoint
POST /open-apis/spatial-model/v1/model/cancel
Limiti
| Voce | Limite |
|---|---|
| Restrizione di stato | Si possono annullare solo le attività nello stato Modellazione in corso (7); gli altri stati restituiscono 100041017 |
| Concorrenza | 10 richieste / secondo; limite di frequenza di 3 secondi per modelId, se le chiamate sono troppo frequenti viene restituito 10000003 |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | — | Sì | Nessuno |
Risposta
Restituisce solo la Struttura di risposta unificata.
Esempio di richiesta
{
"modelId": 100231987
}
Elenco attività paginato
Interroga le attività di modellazione pagina per pagina, con filtri.
Endpoint
POST /open-apis/spatial-model/v1/model/list
Limiti
| Voce | Limite |
|---|---|
| Ambito dei dati | Restituisce solo le attività dell'account associato all'appId corrente |
| Polling | Intervallo non inferiore a 5 secondi |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelName | Nome dell'attività | Meno di 50 caratteri, corrispondenza parziale | No | Qualsiasi |
| statusList | Stati dell'attività | Valori in Macchina a stati dell'attività | No | Qualsiasi |
| startTime | Ora di inizio | Timestamp in millisecondi; filtra i record creati a partire da startTime | No | Qualsiasi |
| endTime | Ora di fine | Timestamp in millisecondi; filtra i record creati fino a endTime | No | Qualsiasi |
| page.page | Numero di pagina | — | No | 1 |
| page.limit | Dimensione della pagina | — | No | Definita dal server |
| page.order | Ordinamento | ASC crescente, DESC decrescente, per data di creazione | No | DESC |
Risposta
| Nome | Tipo | Significato |
|---|---|---|
| data.page | Integer | Numero di pagina |
| data.limit | Integer | Dimensione della pagina |
| data.total | Long | Numero totale |
| data.data | List | Elenco dei dati |
| data.data[].modelId | Long | ID dell'attività di modellazione |
| data.data[].modelName | String | Nome dell'attività |
| data.data[].modelDes | String | Descrizione dell'attività |
| data.data[].cover | String | URL della copertina; al termine della modellazione è l'anteprima renderizzata complessiva del modello. Link temporaneo firmato, non salvarlo in modo permanente |
| data.data[].percent | Double | Avanzamento della modellazione |
| data.data[].tags | List | Tag |
| data.data[].status | Integer | Stato dell'attività; valori in Macchina a stati dell'attività |
| data.data[].errorCode | String | Codice di errore |
| data.data[].failedReason | String | Motivo dell'errore |
| data.data[].createTime | Long | Data di creazione, timestamp in millisecondi |
| data.data[].taskSuccessAt | Long | Data di completamento della modellazione, timestamp in millisecondi |
Esempio di richiesta
{
"modelName": "Design Commune",
"statusList": [7, 8],
"startTime": 1790899200000,
"endTime": 1791763200000,
"page": {
"page": 1,
"limit": 20,
"order": "DESC"
}
}
Dettagli attività
Interroga in batch i dettagli delle attività di modellazione, incluse statistiche come la durata della modellazione.
Endpoint
POST /open-apis/spatial-model/v1/model/detail
Limiti
| Voce | Limite |
|---|---|
| Query in batch | Fino a 50 modelId per richiesta |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelIdList | ID delle attività di modellazione | List<Long>, fino a 50 alla volta | Sì | Nessuno |
Risposta
| Nome | Tipo | Significato |
|---|---|---|
| data.dataList | List | Dettagli delle attività |
| data.dataList[].modelId | Long | ID dell'attività di modellazione |
| data.dataList[].modelName | String | Nome dell'attività |
| data.dataList[].modelDes | String | Descrizione dell'attività |
| data.dataList[].cover | String | URL della copertina. Link temporaneo firmato, non salvarlo in modo permanente |
| data.dataList[].percent | Double | Avanzamento della modellazione |
| data.dataList[].tags | List | Tag |
| data.dataList[].status | Integer | Stato dell'attività; valori in Macchina a stati dell'attività |
| data.dataList[].errorCode | String | Codice di errore |
| data.dataList[].failedReason | String | Motivo dell'errore |
| data.dataList[].createTime | Long | Data di creazione, timestamp in millisecondi |
| data.dataList[].rebuildInfo | Object | Informazioni sulla modellazione |
| data.dataList[].rebuildInfo.quality | String | Qualità della modellazione. 1 veloce, 2 standard, 3 lenta |
| data.dataList[].rebuildInfo.autoRebuild | Integer | Indicatore di modellazione automatica. 0 solo caricamento, 1 modellazione automatica dopo il caricamento |
| data.dataList[].rebuildInfo.inputTotalSize | Long | Dimensione dei dati di input, in byte |
| data.dataList[].rebuildInfo.outputTotalSize | Long | Dimensione degli output della modellazione, in byte |
| data.dataList[].rebuildInfo.uploadTime | Long | Durata del caricamento, in millisecondi |
| data.dataList[].rebuildInfo.buildTime | Long | Durata della modellazione, in millisecondi |
| data.dataList[].rebuildInfo.taskStartAt | Long | Ora di inizio della modellazione, timestamp in millisecondi |
| data.dataList[].rebuildInfo.taskSuccessAt | Long | Ora di completamento della modellazione, timestamp in millisecondi |
| data.dataList[].rebuildInfo.credit | Object | Informazioni di addebito dei crediti (sola lettura), per verificare l'addebito di questa esecuzione di modellazione. L'oggetto viene sempre restituito; i suoi campi sono null finché non esistono dati di addebito |
| data.dataList[].rebuildInfo.credit.freezeNo | String | Numero di congelamento dei crediti, formato SPATIAL_MODELING_{modelId}_{attempt}. Ha un valore solo dopo che Avvia attività ha congelato correttamente i crediti; prima è null |
| data.dataList[].rebuildInfo.credit.frozenCredit | Long | Crediti congelati per questo ciclo. All'avvio della modellazione viene congelata una stima; se in seguito l'algoritmo stima una superficie che richiede più crediti, vengono congelati crediti aggiuntivi e questo campo mostra il totale aggiornato |
| data.dataList[].rebuildInfo.credit.actualCredit | Long | Crediti effettivamente detratti. Null prima della regolazione; dopo il successo o l'annullamento della modellazione contiene l'addebito basato sull'utilizzo effettivo; 0 quando i crediti vengono rilasciati dopo una modellazione non riuscita |
| data.dataList[].rebuildInfo.credit.settleStatus | String | Stato di regolazione. FROZEN congelati, in attesa di regolazione; SETTLED regolati e addebitati (modellazione riuscita o annullata); RELEASED rilasciati, crediti interamente rimborsati (modellazione non riuscita, ecc.). Null se non congelati |
| data.dataList[].rebuildInfo.credit.attempt | Integer | Ciclo di modellazione, a partire da 1. Aumenta di 1 solo quando Avvia attività viene chiamata di nuovo; la riassegnazione interna da parte della piattaforma non lo modifica. Ogni ciclo ha il proprio freezeNo |
| data.dataList[].rebuildInfo.credit.areaM2 | Double | Superficie di modellazione stimata dall'algoritmo, in metri quadrati; è la base per il congelamento aggiuntivo. Null finché l'algoritmo non la comunica |
Esempio di richiesta
{
"modelIdList": [100231987, 100231988]
}
Crediti dell'account
Interroga il saldo dei crediti dell'account associato all'appId.
Endpoint
POST /open-apis/spatial-model/v1/credit/info
Limiti
| Voce | Limite |
|---|---|
| Oggetto della query | L'account crediti dell'account associato all'appId; non serve alcun identificativo utente |
| Account non attivato | Se non sono mai stati emessi crediti, tutti i saldi restituiscono 0; non viene considerato un errore |
| Aggiornamento dei dati | Restituisce il saldo in tempo reale al momento della query, senza cache |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
Nessun parametro di business. Passa un oggetto vuoto {}.
Risposta
| Nome | Tipo | Significato |
|---|---|---|
| data.availableCredit | Long | Crediti disponibili, utilizzabili subito |
| data.frozenCredit | Long | Crediti congelati, riservati ma non ancora regolati |
| data.totalCredit | Long | Crediti totali, pari ad availableCredit più frozenCredit |
Esempio di risposta
{
"code": 0,
"msg": "success",
"data": {
"bizCode": 0,
"bizMsg": "",
"availableCredit": 8500,
"frozenCredit": 1500,
"totalCredit": 10000
}
}
Nota: questa API interroga solo il saldo dei crediti dell'account. Le regole di addebito dei crediti per le attività di modellazione (momento della detrazione e base di calcolo) saranno definite e documentate in una versione successiva. Nella versione attuale, le chiamate alle API di modellazione non dipendono dai valori restituiti qui.
Scarica risultati della modellazione
Ottiene i link di download temporanei degli output della modellazione. Per il loro contenuto vedi Output della modellazione.
Endpoint
POST /open-apis/spatial-model/v1/model/data/download
Limiti
| Voce | Limite |
|---|---|
| Prerequisito | Lo stato dell'attività deve essere Modellazione completata (8) |
| Validità dei link | Link temporanei firmati; scarica subito dopo averli ottenuti e non salvarli in modo permanente |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | — | Sì | Nessuno |
| type | Tipo di output | DXF, GLB, BLEND, RVT | No | Se omesso, vengono restituiti tutti gli output generati: DXF / GLB / BLEND, più RVT se disponibile |
Risposta
| Nome | Tipo | Significato |
|---|---|---|
| data.dataList | List<String> | Link di download degli output della modellazione. Link temporanei firmati, non salvarli in modo permanente |
Esempio di richiesta
{
"modelId": 100231987,
"type": "GLB"
}
Elimina attività
Elimina un'attività di modellazione e i dati associati.
Endpoint
POST /open-apis/spatial-model/v1/model/del
Limiti
| Voce | Limite |
|---|---|
| Restrizione di stato | Le attività nello stato Modellazione in corso (7) non possono essere eliminate |
| Impatto | Rimuove anche i dati di input caricati e gli output della modellazione; l'operazione non è reversibile |
| Concorrenza | 10 richieste / secondo |
Parametri della richiesta
| Parametro | Significato | Regola | Obbligatorio | Predefinito |
|---|---|---|---|---|
| modelId | ID dell'attività di modellazione | — | Sì | Nessuno |
Risposta
Restituisce solo la Struttura di risposta unificata.
Esempio di richiesta
{
"modelId": 100231987
}
Nota: l'eliminazione non è reversibile; i dati di input e gli output della modellazione vengono rimossi insieme. Aggiungi una seconda conferma nel tuo sistema.