API-referentie
Alle API's op deze pagina gebruiken POST met een JSON-request body. Elk verzoek gebruikt de Algemene request-headers; die worden niet per API herhaald. De buitenste responsstructuur staat in Uniforme responsstructuur; het onderdeel "Respons" van elke API noemt alleen de zakelijke velden binnen data.
Domeinen
| Regio | Domein |
|---|---|
| Chinees vasteland | https://open-api-gw.xgrids.cloud/ |
| Buiten het Chinese vasteland (inclusief Hongkong, Macau en Taiwan) | https://open-api-gw.xgrids.com/ |
Algemene request-headers
Elke API vereist de volgende headerparameters.
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| APP-ID | Applicatie-ID | Verkregen bij de aanvraag van de applicatie | Ja | Geen |
| X-Timestamp | Tijdstempel van het verzoek | Tijdstempel in seconden | Ja | Geen |
| X-Nonce | Willekeurige tekenreeks | Alleen letters en cijfers, 16 tot 32 tekens. Regex ^[A-Za-z0-9]{16,32}$. Aanbevolen: UUID.randomUUID() zonder - | Ja | Geen |
| X-Sign | Handtekening van het verzoek | Controleert dat het verzoek niet is gewijzigd en voorkomt replay. Zie Handtekeningmechanisme | Ja | Geen |
| Content-Type | Inhoudstype | Altijd application/json | Ja | Geen |
| language | Taal van de responsberichten | zh-CN of en-US | Nee | zh-CN |
Uniforme responsstructuur
Alle API's geven dezelfde buitenste structuur terug. De buitenste code geeft alleen het resultaat op API-niveau weer; lees data.bizCode voor het zakelijke resultaat.
| Naam | Betekenis | Regel |
|---|---|---|
| code | Resultaatcode van de API | 0 geslaagd, 401 authenticatie mislukt, 429 te veel verzoeken |
| msg | Beschrijving van het API-resultaat | — |
| data | Zakelijke gegevens | — |
| data.bizCode | Zakelijke resultaatcode | 0 betekent geslaagd; zie Foutcodes voor andere waarden |
| data.bizMsg | Zakelijke foutmelding | — |
Opmerking: Een aanroep is alleen geslaagd als zowel
code == 0alsdata.bizCode == 0.
Taak aanmaken en uploadreferenties ophalen
Maakt een modelleringstaak aan en geeft tijdelijke cloudopslagreferenties uit voor het uploaden van de invoergegevens.
Endpoint
POST /open-apis/spatial-model/v1/model/create
Limieten
| Onderdeel | Limiet |
|---|---|
| Gelijktijdigheid | 10 verzoeken / seconde |
| Geldigheid tijdelijke referenties | 12 uur |
| Regio voor gegevensopslag | Vastgelegd bij de aanvraag van de applicatie; hoeft niet te worden meegegeven |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelName | Naam van de modelleringstaak | Minder dan 50 tekens | Ja | Geen |
| modelDes | Taakbeschrijving | Minder dan 200 tekens | Nee | Leeg |
| quality | Modelleringskwaliteit | "1" snel, "2" standaard, "3" langzaam | Nee | "2" |
| autoRebuild | Na upload automatisch modelleren | 0 alleen uploaden, 1 na upload automatisch modelleren | Nee | 1 |
| tags | Taaklabels | List<String>, minder dan 20 elementen | Nee | Leeg |
Respons
| Naam | Type | Betekenis |
|---|---|---|
| data.modelId | Long | Door de server gegenereerde ID van de modelleringstaak |
| data.params | Object | Parameters van de tijdelijke referenties voor de gegevensupload |
| data.params.cloudService | String | Cloudprovider die de upload ontvangt. OSS Alibaba Cloud, AWS Amazon, KS3 Kingsoft Cloud. Elke integrator werkt normaal met één vaste provider, dus je hoeft ze niet allemaal te ondersteunen |
| data.params.endpoint | String | Upload-endpoint van de cloudopslagprovider |
| data.params.region | String | Opslagregio van de cloudopslagprovider |
| data.params.bucket | String | Uploadbucket van de cloudopslagprovider |
| data.params.savePath | String | Key van de doelmap voor geüploade bestanden. Dit is het voorvoegsel van de map input; voeg het relatieve pad van elk bestand toe om de werkelijke Key te vormen |
| data.params.accessKeyId | String | Tijdelijke AccessKeyId |
| data.params.accessKeySecret | String | Tijdelijk AccessKeySecret |
| data.params.securityToken | String | SecurityToken voor de upload |
| data.params.requestId | String | ID van dit verzoek |
Requestvoorbeeld
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"]
}
Responsvoorbeeld
{
"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"
}
}
}
Taak starten
Start het modelleren handmatig.
Endpoint
POST /open-apis/spatial-model/v1/model/start
Limieten
| Onderdeel | Limiet |
|---|---|
| Wanneer te gebruiken | Alleen als de taak is aangemaakt met autoRebuild = 0:① Alleen taken met de status Upload voltooid (3) kunnen worden gestart; anders wordt 100041018 teruggegeven;② De map input moet minstens één .lcc2- / .ply- / .las-bestand bevatten; anders wordt 100041019 teruggegeven;③ Bij het starten worden credits bevroren; bij onvoldoende saldo wordt een creditfoutcode teruggegeven |
| Frequentielimiet | Limiet van 3 seconden per modelId |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | Teruggegeven bij het aanmaken van de taak | Ja | Geen |
Respons
Geeft alleen de Uniforme responsstructuur terug.
Requestvoorbeeld
{
"modelId": 100231987
}
Uploadreferenties opnieuw ophalen
Haalt nieuwe tijdelijke uploadreferenties op als een upload is onderbroken of de tijdelijke referenties zijn verlopen.
Endpoint
POST /open-apis/spatial-model/v1/model/sts
Limieten
| Onderdeel | Limiet |
|---|---|
| Geldigheid tijdelijke referenties | 12 uur |
| Frequentielimiet | Limiet van 3 seconden per modelId; bij te vaak aanroepen wordt 10000003 teruggegeven |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | — | Ja | Geen |
Respons
Gelijk aan de respons van Taak aanmaken en uploadreferenties ophalen (data.modelId en data.params.*).
Requestvoorbeeld
{
"modelId": 100231987
}
Uploadstatus bijwerken
Meldt de uploadstatus van de invoergegevens. Je moet deze API aanroepen nadat de upload is voltooid; anders start het modelleren niet.
Endpoint
POST /open-apis/spatial-model/v1/model/upload_status/update
Limieten
| Onderdeel | Limiet |
|---|---|
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | — | Ja | Geen |
| status | Uploadstatus | 1 bezig met uploaden, 2 gepauzeerd, 3 geslaagd, 4 mislukt | Ja | Geen |
| uploadTime | Uploadduur | In milliseconden; aanbevolen als de upload is geslaagd | Nee | Leeg |
| failedReason | Reden van mislukking | Aanbevolen als de upload is mislukt | Nee | Leeg |
Respons
Geeft alleen de Uniforme responsstructuur terug.
Requestvoorbeeld
{
"modelId": 100231987,
"status": 3,
"uploadTime": 184620
}
Modelleren annuleren
Kan alleen worden aangeroepen voor taken die worden gemodelleerd.
- Alleen taken met de status Bezig met modelleren kunnen worden geannuleerd. Na annulering verandert de taakstatus in Modelleren mislukt.
- Bij annulering worden credits afgeschreven voor het al verbruikte gebruik; extra bevroren credits gaan terug naar het saldo.
- Credits worden meestal binnen enkele minuten verrekend, uiterlijk na ongeveer 10 minuten.
Endpoint
POST /open-apis/spatial-model/v1/model/cancel
Limieten
| Onderdeel | Limiet |
|---|---|
| Statusbeperking | Alleen taken met de status Bezig met modelleren (7) kunnen worden geannuleerd; andere statussen geven 100041017 terug |
| Gelijktijdigheid | 10 verzoeken / seconde; limiet van 3 seconden per modelId, bij te vaak aanroepen wordt 10000003 teruggegeven |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | — | Ja | Geen |
Respons
Geeft alleen de Uniforme responsstructuur terug.
Requestvoorbeeld
{
"modelId": 100231987
}
Takenlijst met paginering
Vraagt modelleringstaken per pagina op, met filters.
Endpoint
POST /open-apis/spatial-model/v1/model/list
Limieten
| Onderdeel | Limiet |
|---|---|
| Gegevensbereik | Geeft alleen taken terug van het account dat aan de huidige appId is gekoppeld |
| Polling | Interval niet korter dan 5 seconden |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelName | Taaknaam | Minder dan 50 tekens, gedeeltelijke overeenkomst | Nee | Alle |
| statusList | Taakstatussen | Waarden uit Statusmachine van een taak | Nee | Alle |
| startTime | Begintijd | Tijdstempel in milliseconden; filtert records die op of na startTime zijn aangemaakt | Nee | Alle |
| endTime | Eindtijd | Tijdstempel in milliseconden; filtert records die op of vóór endTime zijn aangemaakt | Nee | Alle |
| page.page | Paginanummer | — | Nee | 1 |
| page.limit | Paginagrootte | — | Nee | Bepaald door de server |
| page.order | Sorteervolgorde | ASC oplopend, DESC aflopend, op aanmaaktijd | Nee | DESC |
Respons
| Naam | Type | Betekenis |
|---|---|---|
| data.page | Integer | Paginanummer |
| data.limit | Integer | Paginagrootte |
| data.total | Long | Totaal aantal |
| data.data | List | Gegevenslijst |
| data.data[].modelId | Long | ID van de modelleringstaak |
| data.data[].modelName | String | Taaknaam |
| data.data[].modelDes | String | Taakbeschrijving |
| data.data[].cover | String | URL van de omslagafbeelding; na het modelleren is dit de gerenderde totaalpreview van het model. Ondertekende tijdelijke link, niet opslaan |
| data.data[].percent | Double | Voortgang van het modelleren |
| data.data[].tags | List | Labels |
| data.data[].status | Integer | Taakstatus; waarden uit Statusmachine van een taak |
| data.data[].errorCode | String | Foutcode |
| data.data[].failedReason | String | Reden van mislukking |
| data.data[].createTime | Long | Aanmaaktijd, tijdstempel in milliseconden |
| data.data[].taskSuccessAt | Long | Tijdstip waarop het modelleren is voltooid, tijdstempel in milliseconden |
Requestvoorbeeld
{
"modelName": "Design Commune",
"statusList": [7, 8],
"startTime": 1790899200000,
"endTime": 1791763200000,
"page": {
"page": 1,
"limit": 20,
"order": "DESC"
}
}
Taakdetails
Vraagt in batches de details van modelleringstaken op, inclusief statistieken zoals de modelleringsduur.
Endpoint
POST /open-apis/spatial-model/v1/model/detail
Limieten
| Onderdeel | Limiet |
|---|---|
| Batchopvraag | Maximaal 50 modelIds per verzoek |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelIdList | ID's van modelleringstaken | List<Long>, maximaal 50 per keer | Ja | Geen |
Respons
| Naam | Type | Betekenis |
|---|---|---|
| data.dataList | List | Taakdetails |
| data.dataList[].modelId | Long | ID van de modelleringstaak |
| data.dataList[].modelName | String | Taaknaam |
| data.dataList[].modelDes | String | Taakbeschrijving |
| data.dataList[].cover | String | URL van de omslagafbeelding. Ondertekende tijdelijke link, niet opslaan |
| data.dataList[].percent | Double | Voortgang van het modelleren |
| data.dataList[].tags | List | Labels |
| data.dataList[].status | Integer | Taakstatus; waarden uit Statusmachine van een taak |
| data.dataList[].errorCode | String | Foutcode |
| data.dataList[].failedReason | String | Reden van mislukking |
| data.dataList[].createTime | Long | Aanmaaktijd, tijdstempel in milliseconden |
| data.dataList[].rebuildInfo | Object | Modelleringsinformatie |
| data.dataList[].rebuildInfo.quality | String | Modelleringskwaliteit. 1 snel, 2 standaard, 3 langzaam |
| data.dataList[].rebuildInfo.autoRebuild | Integer | Vlag voor automatisch modelleren. 0 alleen uploaden, 1 na upload automatisch modelleren |
| data.dataList[].rebuildInfo.inputTotalSize | Long | Grootte van de invoergegevens, in bytes |
| data.dataList[].rebuildInfo.outputTotalSize | Long | Grootte van de modelleringsuitvoer, in bytes |
| data.dataList[].rebuildInfo.uploadTime | Long | Uploadduur, in milliseconden |
| data.dataList[].rebuildInfo.buildTime | Long | Modelleringsduur, in milliseconden |
| data.dataList[].rebuildInfo.taskStartAt | Long | Starttijd van het modelleren, tijdstempel in milliseconden |
| data.dataList[].rebuildInfo.taskSuccessAt | Long | Tijdstip waarop het modelleren is geslaagd, tijdstempel in milliseconden |
| data.dataList[].rebuildInfo.credit | Object | Factureringsinformatie over credits (alleen-lezen), om de kosten van deze modelleringsronde te controleren. Dit object wordt altijd teruggegeven; zolang er geen factureringsgegevens zijn, zijn de velden null |
| data.dataList[].rebuildInfo.credit.freezeNo | String | Nummer van de creditbevriezing, formaat SPATIAL_MODELING_{modelId}_{attempt}. Heeft pas een waarde nadat Taak starten de credits met succes heeft bevroren; daarvoor null |
| data.dataList[].rebuildInfo.credit.frozenCredit | Long | Credits die voor deze ronde zijn bevroren. Bij de start van het modelleren wordt een schatting bevroren; als het algoritme later een oppervlakte schat die meer credits vereist, worden extra credits bevroren en toont dit veld het totaal na de verhoging |
| data.dataList[].rebuildInfo.credit.actualCredit | Long | Werkelijk afgeschreven credits. Null vóór verrekening; na geslaagd of geannuleerd modelleren gevuld met de kosten op basis van het werkelijke gebruik; 0 bij vrijgave na mislukt modelleren |
| data.dataList[].rebuildInfo.credit.settleStatus | String | Verrekeningsstatus. FROZEN bevroren, wacht op verrekening; SETTLED verrekend en afgeschreven (modelleren geslaagd of geannuleerd); RELEASED vrijgegeven, credits volledig teruggestort (modelleren mislukt e.d.). Null als er niets is bevroren |
| data.dataList[].rebuildInfo.credit.attempt | Integer | Modelleringsronde, begint bij 1. Wordt alleen met 1 verhoogd als Taak starten opnieuw wordt aangeroepen; interne herverdeling door het platform verandert de waarde niet. Elke ronde heeft een eigen freezeNo |
| data.dataList[].rebuildInfo.credit.areaM2 | Double | Door het algoritme geschatte modelleringsoppervlakte, in vierkante meters; de basis voor extra bevriezing. Null totdat het algoritme deze meldt |
Requestvoorbeeld
{
"modelIdList": [100231987, 100231988]
}
Accountcredits
Vraagt het creditsaldo op van het account dat aan de appId is gekoppeld.
Endpoint
POST /open-apis/spatial-model/v1/credit/info
Limieten
| Onderdeel | Limiet |
|---|---|
| Doel van de opvraag | De creditrekening van het account dat aan de appId is gekoppeld; er is geen gebruikersidentificatie nodig |
| Rekening niet geopend | Als er nooit credits zijn uitgegeven, zijn alle saldi 0; dit geldt niet als fout |
| Actualiteit | Geeft het realtime saldo op het moment van opvragen terug, zonder caching |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
Geen zakelijke parameters. Geef een leeg object {} mee.
Respons
| Naam | Type | Betekenis |
|---|---|---|
| data.availableCredit | Long | Beschikbare credits die nu kunnen worden gebruikt |
| data.frozenCredit | Long | Bevroren credits, gereserveerd maar nog niet verrekend |
| data.totalCredit | Long | Totaal aantal credits, gelijk aan availableCredit plus frozenCredit |
Responsvoorbeeld
{
"code": 0,
"msg": "success",
"data": {
"bizCode": 0,
"bizMsg": "",
"availableCredit": 8500,
"frozenCredit": 1500,
"totalCredit": 10000
}
}
Opmerking: Deze API vraagt alleen het creditsaldo van het account op. De factureringsregels voor credits bij modelleringstaken (moment van afschrijving en factureringsgrondslag) worden in een latere versie vastgelegd en gedocumenteerd. In de huidige versie hebben de hier teruggegeven waarden geen invloed op aanroepen van de modellerings-API's.
Modelleringsresultaten downloaden
Haalt tijdelijke downloadlinks op voor de modelleringsuitvoer. Zie Modelleringsuitvoer voor de inhoud.
Endpoint
POST /open-apis/spatial-model/v1/model/data/download
Limieten
| Onderdeel | Limiet |
|---|---|
| Voorwaarde | De taakstatus moet Modelleren voltooid (8) zijn |
| Geldigheid van links | Ondertekende tijdelijke links; download kort na het ophalen en sla ze niet op |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | — | Ja | Geen |
| type | Uitvoertype | DXF, GLB, BLEND, RVT | Nee | Indien weggelaten wordt alle gemaakte uitvoer teruggegeven: DXF / GLB / BLEND, plus RVT indien beschikbaar |
Respons
| Naam | Type | Betekenis |
|---|---|---|
| data.dataList | List<String> | Downloadlinks van de modelleringsuitvoer. Ondertekende tijdelijke links, niet opslaan |
Requestvoorbeeld
{
"modelId": 100231987,
"type": "GLB"
}
Taak verwijderen
Verwijdert een modelleringstaak en de bijbehorende gegevens.
Endpoint
POST /open-apis/spatial-model/v1/model/del
Limieten
| Onderdeel | Limiet |
|---|---|
| Statusbeperking | Taken met de status Bezig met modelleren (7) kunnen niet worden verwijderd |
| Gevolgen | Verwijdert ook de geüploade invoergegevens en de modelleringsuitvoer; kan niet ongedaan worden gemaakt |
| Gelijktijdigheid | 10 verzoeken / seconde |
Requestparameters
| Parameter | Betekenis | Regel | Verplicht | Standaard |
|---|---|---|---|---|
| modelId | ID van de modelleringstaak | — | Ja | Geen |
Respons
Geeft alleen de Uniforme responsstructuur terug.
Requestvoorbeeld
{
"modelId": 100231987
}
Opmerking: Verwijderen kan niet ongedaan worden gemaakt; invoergegevens en modelleringsuitvoer worden samen verwijderd. Voeg aan jouw kant een tweede bevestiging toe.