Freagraí agus earráidí

Conradh freagraí agus earráidí API riaracháin

Comhlánaíonn an comhad seo an conradh freagraí do gach críochphointe in Tagairt críochphointí. Léigh ró an chríochphointe dá chorp ratha agus na táblaí thíos do gach corp neamh-ratha comhroinnte nó sonrach. De réir réamhshocraithe, úsáideann earráidí roinnt struchtúr comhoiriúnachta; is féidir le glaoiteoirí clúdach uilíoch amháin a roghnú.

Clúdach roghnach struchtúrtha earráide

Seol an ceanntásc iarratais seo chuig aon chríochphointe:

X-Error-Format: envelope

Baintear spásanna imeallacha den luach le haghaidh comparáide agus ní dhéantar idirdhealú idir litreacha móra agus beaga. Leis an luach cruinn sin, tiontaítear gach freagra JSON a bhfuil stádas 400 nó níos airde aige go:

ErrorEnvelope = {
  error: {
    code: string,
    message: string,
    details: Record<string, unknown>,
    requestId: string
  }
}

Tiontú samplach ar chorp bailíochtaithe réamhshocraithe:

{
  "error": {
    "code": "VALIDATION_FAILED",
    "message": "Invalid request",
    "details": {
      "fields": {
        "name": ["String must contain at least 1 character(s)"]
      }
    },
    "requestId": "integration-42"
  }
}

Tá na rialacha tiontaithe beacht:

  • Déantar details.fields de validationErrors, agus VALIDATION_FAILED de code, fiú nuair a bhí cód fearainn sa chorp réamhshocraithe freisin.
  • Coinnítear code réamhshocraithe barrleibhéil nuair nach bhfuil réimsí bailíochtaithe ann.
  • Bogtar airíonna barrleibhéil eile seachas error, message, validationErrors agus code isteach in details; mar shampla, déantar details.limit de limit easpórtála tuairisce.
  • Déantar message de error barrleibhéil den chineál teaghráin. Mura bhfuil a leithéid ann, úsáidtear an stádas cúltaca.
  • Is iad na cóid chúltaca AUTH_REQUIRED (401), PERMISSION_DENIED (403), RESOURCE_NOT_FOUND (404), CONFLICT (409), VALIDATION_FAILED (422 agus 4xx neamhaicmithe eile), RATE_LIMITED (429), EXTERNAL_PROVIDER_FAILED (502) agus INTERNAL_ERROR (5xx eile, 503 san áireamh).
  • Is é requestId an ceanntásc freagra cruinn X-Request-Id. Ní úsáidtear ID iarratais arna sholáthar ag glaoiteoir ach má mheaitseálann sé [A-Za-z0-9._:-]{1,128} tar éis spásanna imeallacha a bhaint; murach sin gineann an freastalaí UUID.

Ní athraíonn an tiontú seo an stádas ná ceanntásca nach mbaineann leis an gcorp. Baineann sé freisin le hathsheinmneacha idempotent de réir cheanntásc X-Error-Format an iarratais athsheinm. Fanann freagraí ratha dénártha ina ndénártha; cuirtear a n-earráidí JSON i gclúdach. Taispeánann na táblaí eile na coirp réamhshocraithe; tugann cur i bhfeidhm na rialacha thuas an corp freagra eile atá indéanta do gach ró.

Nodaireacht freagraí

ValidationError = {
  validationErrors: Record<string, string[]>,
  code?: string
}

CodedError = {
  error: string,
  code: string,
  // a route may add fields explicitly listed below
}

PlainError = { error: string }

Is tuairisciúil iad error agus téacs teachtaireachtaí bailíochtaithe, seachas idirdhealaitheoir cobhsaí ríomhchláraithe. Brainseáil ar code nuair atá sé ann. Tugann bailíochtú iarratais 422 ValidationError ar ais; féadfaidh bailíochtú réada iomláin { "validationErrors": {} } a tháirgeadh nuair nach n-aithnítear réimse aonair. Tugann JSON neamhbhailí agus teipeanna gan choinne an 500 PlainError domhanda a thaispeántar thíos ar ais.

Léiríonn gach sampla JSON struchtúr beacht an choirp. Is í an teachtaireacht bhailíochtaithe nó oibríochta a thugtar ar ais an téacs a thaispeántar mar <message>; is teaghrán JSON í, seachas luach litriúil idir lúibíní uilleacha.

Ord próiseála iarratas

Próiseáiltear iarratais san ord seo:

  1. cumraíocht agus fíordheimhniú comharthaí spáis oibre;
  2. beartas óstaigh agus teorainneacha ráta comhartha/spáis oibre;
  3. scagadh teidlíochta reatha;
  4. do gach athrú, bailíochtú/éileamh idempotency;
  5. seiceálacha scóipe críochphointe, bailíochtú iarratais agus an oibríocht iarrtha.

Dá bhrí sin, tá Idempotency-Key de dhíth fós ar athrú le comhartha bailí nach bhfuil dóthain scóipe aige. Is féidir freagra athraithe críochnaithe 403, 404, 409 nó 422 a athsheinm don eochair/iarratas céanna.

Freagraí fíordheimhnithe, beartais agus teorannaithe ráta

Féadfaidh na freagraí seo tarlú ar gach críochphointe cláraithe /v2/admin roimh phróiseáil shonrach an chríochphointe.

StádasCathainCorp cruinnCeanntásca ábhartha
401Comhartha spáis oibre ar iarraidh, dúblach, ceangailte le camóga, neamh-Bearer, míchumtha, anaithnid, imithe in éag, cúlghairthe nó neamhbhailí ar shlí eile{ "error": "Unauthorized", "code": "INVALID_WORKSPACE_TOKEN" }WWW-Authenticate: Bearer, Cache-Control: no-store
404Tá an comhartha bailí ach níl adminApiEnabled ag óstach a spáis oibre{ "error": "Not Found" }Cache-Control: no-store
429Tá an cuóta iarratas in aghaidh an chomhartha nó an spáis oibre ídithe{ "error": "Too many attempts. Please try again later." }Retry-After: <seconds>
503Níl fíordheimhniú comhartha spáis oibre ar fáil go sealadach{ "error": "Admin API workspace-token configuration is unavailable", "code": "WORKSPACE_API_CONFIG_UNAVAILABLE" }—
503Teipeann ar chuardach beartais óstaigh nó ar údarú teidlíochta reatha{ "error": "Workspace authorization is temporarily unavailable", "code": "WORKSPACE_AUTHORIZATION_UNAVAILABLE" }—

Tá rochtain API i ngach plean. Má dhíchumasaítear socrú adminApiEnabled óstach an spáis oibre, tugtar 404 ar ais; má chailltear teidlíocht ghné bhreise, ní bhaintear ach na scóip lena mbaineann. Úsáideann an diúltú scóipe sin an freagra thíos, seachas sreabhadh athnuachana comhartha.

Teipeanna scóipe, idempotency, parsála, úinéireachta agus gan choinne

Baineann leStádasCorp cruinnCeanntásca/nótaí
Gach bealach tar éis fíordheimhnithe403{ "error": "Insufficient workspace-token scope", "code": "INSUFFICIENT_SCOPE" }Tugtar ar ais nuair atá aon scóip riachtanach ar iarraidh.
Gach athrú400{ "error": "Idempotency-Key is required for this operation", "code": "IDEMPOTENCY_KEY_REQUIRED" }Níor soláthraíodh eochair.
Gach athrú400{ "error": "Exactly one Idempotency-Key is required", "code": "INVALID_IDEMPOTENCY_KEY" }Ceanntásc dúblach nó ceangailte le camóga.
Gach athrú400{ "error": "Idempotency-Key must contain 1 to 255 visible characters", "code": "INVALID_IDEMPOTENCY_KEY" }Folamh, rófhada nó tá carachtar rialaithe ann.
Gach athrú409{ "error": "Idempotency-Key was already used with a different request", "code": "IDEMPOTENCY_CONFLICT" }An comhartha/modh/cosán/eochair céanna, URL nó corp difriúil.
Gach athrú409{ "error": "Request is already processing", "code": "IDEMPOTENT_REQUEST_PROCESSING" }Retry-After: 5.
Gach athrú409{ "error": "Previous request outcome is unknown; verify its effects before attempting the operation again", "code": "IDEMPOTENCY_OUTCOME_UNKNOWN" }Chuaigh léas próiseála roimhe seo in éag, dúnadh an nasc nó chríochnaigh an t-iarratas le 5xx.
Gach athrú503{ "error": "Idempotency storage unavailable", "code": "IDEMPOTENCY_UNAVAILABLE" }Ní féidir leis an API an taifead idempotency a sheiceáil ná a shábháil.
Aon chríochphointe le scéim cheiste/choirp/chosáin neamhbhailí422{ "validationErrors": { "<field>": ["<message>"] } }Féadfaidh roinnt réimsí/teachtaireachtaí a bheith ann. Ní féidir le glaoiteoirí cpoId a sholáthar; tagann an spás oibre ón gcomhartha i gcónaí.
Aon acmhainn neadaithe spáis oibre ar iarraidh nó aitheantóir ó spás oibre eile404{ "error": "Workspace resource not found", "code": "RESOURCE_NOT_FOUND" }Úsáidtear go comhsheasmhach mura ndeir tábla thíos a mhalairt.
Aon chríochphointe le teip gan choinne500{ "error": "Something went wrong" }I gcás athruithe, tugann athiarracht leis an eochair chéanna níos déanaí 409 IDEMPOTENCY_OUTCOME_UNKNOWN.

Ní mór d'IDanna cosáin acmhainne a bheith ina n-uimhreacha dearfacha. Tugann :siteId, :chargerId, :portId, :tariffId, :profileId, :assignmentId, :userId, :rfidId, :accessId, :limitId nó :localUserId neamh-dhearfach nó neamhuimhriúil 422 ValidationError ar ais, seachas 400.

Earráidí láithreáin agus bainistithe cumhachta

CríochphointíStádasCorp cruinn
Cruthú/nuashonrú láithreáin; bailíochtú réimse spáis oibre422{ "validationErrors": { "<field>": ["<message>"] } }
DELETE /v2/admin/sites/:siteId nuair atá spleáchais ag an láithreán409{ "error": "<message>", "code": "SITE_NOT_EMPTY" }
GET /v2/admin/sites/geocode cuardach normalaithe neamhbhailí400{ "error": "<message>", "code": "INVALID_GEOCODE_QUERY" }
Mar an gcéanna, scuaine theoranta soláthraí lán429{ "error": "<message>", "code": "GEOCODING_BUSY" }; cuimsíonn Retry-After nuair a sholáthraíonn an geochódóir é
Mar an gcéanna, teorainn ama/teip soláthraí nó earráid geochódóra gan choinne502{ "error": "<message>", "code": "GEOCODING_UNAVAILABLE" }; úsáideann earráid gan choinne Address search is temporarily unavailable
PUT /v2/admin/sites/:siteId/power-management cumraíocht toipeolaíochta/fearainn neamhbhailí422{ "error": "<message>", "code": "INVALID_POWER_MANAGEMENT_CONFIGURATION" }
Mar an gcéanna, diúltú/teorainn ama OCPP, coinbhleacht chomhthráthach nó coinbhleacht réitigh409{ "error": "<message>", "code": "POWER_MANAGEMENT_CONFLICT" }

Earráidí luchtairí

Úsáidtear mapChargerErrors() do chruthú/nuashonrú luchtairí, dintiúir, socruithe nascóra, liostú poiblí, réiteach ábhair QR, athrú/athlódáil cumraíochta, tosú dochtearraí, na ceithre ordú bhunúsacha agus iarratas sceidil ilchodaigh.

CríochphointíStádasCorp cruinn
Aon oibríocht thuas le teip bhailíochtaithe fearainn422{ "validationErrors": { "<field>": ["<message>"] } }
Aon oibríocht thuas le coinbhleacht staide, uathúlachta, as líne/OCPP, billeála, Tagless, nascóra nó ullmhachta409{ "error": "<message>", "code": "CHARGER_CONFLICT" }
GET /chargers/:chargerId/sessions, raon ama réamhshocraithe/sonraithe neamhbhailí422{ "validationErrors": { "from": ["from must be before or equal to to"] } } nó { "validationErrors": { "from": ["Session range cannot exceed 90 days"] } }

Ní thugann oibríochtaí simplí léite ach na freagraí comhroinnte 401/403/404/429/500/503 agus bailíochtú ceiste/cosáin 422 ar ais. Féadfaidh scriosadh luchtaire an 500 PlainError comhroinnte a thabhairt ar ais má theipeann ar an scriosadh gan freagra earráide níos sonraí.

Earráidí tuairiscí

CríochphointíStádasCorp cruinn
Raon sonraí/easpórtála ina bhfuil from >= to422{ "validationErrors": { "range": ["from must be earlier than to"] } }
Raon sonraí/easpórtála os cionn 90 lá422{ "validationErrors": { "range": ["Report ranges cannot exceed 90 days"] } }
Cúrsóir teimhneach neamhbhailí sonraí/tomhas422{ "validationErrors": { "cursor": ["<message>"] } }
GET /reports/export, sáraíonn an toradh 2,000 ró422{ "error": "<message>", "code": "REPORT_EXPORT_ROW_LIMIT", "limit": 2000 }
POST /reports/send, gan sceideal sábháilte409{ "error": "A workspace report schedule must be saved before sending", "code": "REPORT_SCHEDULE_REQUIRED" }
Mar an gcéanna, diúltaíonn/teipeann ar an seoltóir ríomhphoist502{ "error": "Report delivery failed", "code": "REPORT_DELIVERY_FAILED" }
Acmhainn sceidil/tomhas faoi úinéireacht ar iarraidh404corp comhroinnte RESOURCE_NOT_FOUND

Is dénártha an t-easpórtáil rathúil; fanann gach earráid easpórtála ina JSON.

Earráidí taraifí

CríochphointíStádasCorp cruinn
Bailíochtú fearainn cruthaithe/nuashonraithe/comhpháirteanna/praghsanna margaidh/sannacháin422{ "validationErrors": { "<field>": ["<message>"] } }
Coinbhleacht staide/spleáchais/uathúlachta scriosta taraife nó sannacháin409{ "error": "<message>", "code": "TARIFF_CONFLICT" }
Taraif, crios tairisceana, luchtaire, nascóir, sannachán taraife nó acmhainn neadaithe eile nach bhfuil faoi úinéireacht404corp comhroinnte RESOURCE_NOT_FOUND

Earráidí próifílí luchtaithe

CríochphointíStádasCorp cruinn
Bailíochtú fearainn cruthaithe/nuashonraithe/sceidil/sannacháin422{ "validationErrors": { "<field>": ["<message>"] } }
Tá tagairt don phróifíl in úsáid chosanta409{ "error": "<message>", "code": "CHARGING_PROFILE_IN_USE" }
Coinbhleacht sioncronaithe OCPP, sannacháin, comhthráthachta nó próifíle eile409{ "error": "<message>", "code": "CHARGING_PROFILE_CONFLICT" }
Próifíl, luchtaire, nascóir, sannachán nó acmhainn neadaithe eile nach bhfuil faoi úinéireacht404corp comhroinnte RESOURCE_NOT_FOUND

Earráidí fearainn úsáideora

Úsáideann earráidí bailíochtaithe úsáideora a aithníonn réimse ValidationError agus code; úsáideann earráidí eile úsáideora CodedError. Úsáideann gach cás acmhainne ar iarraidh an freagra comhroinnte RESOURCE_NOT_FOUND nach nochtann acmhainní.

StádasCód/CóidCorp
400INVALID_USER_CURSOR{ "validationErrors": { "cursor": ["The user-list cursor is invalid for the selected status"] }, "code": "INVALID_USER_CURSOR" }
409USER_ALREADY_EXISTS, CUSTOMER_CONTRACT_MISSING, INVITATION_EMAIL_IN_USE, RFID_ALREADY_EXISTS, ACCESS_ALREADY_EXISTS, ACCESS_ALL_ALREADY_EXISTS, LIMIT_ALREADY_EXISTS, LOCAL_USER_ALREADY_EXISTS, PROTECTED_WORKSPACE_USER, TAGLESS_USER_PROTECTED, USER_RELATED_DATA{ "error": "<message>", "code": "<listed code>" }
422INVALID_EMAIL, INVALID_RFID, INVALID_LIMIT_TYPE, INVALID_LIMIT_VALUE{ "validationErrors": { "<field>": ["<message>"] }, "code": "<listed code>" }
422NO_CHARGERS_AVAILABLE{ "error": "No chargers are available", "code": "NO_CHARGERS_AVAILABLE" }
429INVITATION_RESEND_THROTTLED{ "error": "Invitation resend is temporarily unavailable", "code": "INVITATION_RESEND_THROTTLED" }; cuimsíonn Retry-After
503USER_CURSOR_UNAVAILABLE{ "error": "User pagination is temporarily unavailable", "code": "USER_CURSOR_UNAVAILABLE" }
404RESOURCE_NOT_FOUND{ "error": "Workspace resource not found", "code": "RESOURCE_NOT_FOUND" }

Féadfaidh POST /users/invitations an 403 INSUFFICIENT_SCOPE comhroinnte a thabhairt ar ais freisin tar éis parsáil coirp má tá users:access ar iarraidh, nó má soláthraíodh RFID agus má tá users:rfid ar iarraidh. Liostaíonn críochphointí úsáideora áitiúil gach scóip riachtanach in Tagairt críochphointí.

Baineann cóid earráide úsáideora mar seo a leanas:

Grúpa críochphointíCóid fearainn úsáideora nach 404 iad, sa bhreis ar fhreagraí comhroinnte
GET /usersINVALID_USER_CURSOR (400), USER_CURSOR_UNAVAILABLE (503)
POST /usersUSER_ALREADY_EXISTS, TAGLESS_USER_PROTECTED (409)
PATCH /users/:userIdTAGLESS_USER_PROTECTED (409)
DELETE /users/:userIdTAGLESS_USER_PROTECTED, PROTECTED_WORKSPACE_USER, USER_RELATED_DATA (409)
Sonraí úsáideora, feithiclí, léamh RFID/rochtana/teoranngan cód fearainn nach 404 é
Cruthú RFIDCUSTOMER_CONTRACT_MISSING, RFID_ALREADY_EXISTS, TAGLESS_USER_PROTECTED (409); INVALID_RFID (422)
Nuashonrú/scriosadh RFIDTAGLESS_USER_PROTECTED (409)
Athsholáthar rochtanaTAGLESS_USER_PROTECTED (409); NO_CHARGERS_AVAILABLE (422)
Cúlghairm rochtanaTAGLESS_USER_PROTECTED (409)
Cruthú/nuashonrú teorannTAGLESS_USER_PROTECTED, LIMIT_ALREADY_EXISTS (409); INVALID_LIMIT_TYPE, INVALID_LIMIT_VALUE (422)
Scriosadh teorannTAGLESS_USER_PROTECTED (409)
Cruthú cuireadh spáis oibreCUSTOMER_CONTRACT_MISSING, INVITATION_EMAIL_IN_USE, RFID_ALREADY_EXISTS, TAGLESS_USER_PROTECTED (409); INVALID_EMAIL/INVALID_RFID (422); INVITATION_RESEND_THROTTLED (429) nuair atá tréimhse feithimh seachadta i bhfeidhm
Athsheoladh cuireadh spáis oibreINVALID_EMAIL (422), INVITATION_RESEND_THROTTLED (429)
Cealú cuireadh spáis oibreINVALID_EMAIL (422)
Cruthú úsáideora áitiúil luchtaire do chustaiméir atá ann cheanaLOCAL_USER_ALREADY_EXISTS, TAGLESS_USER_PROTECTED (409)
Cuireadh úsáideora áitiúil luchtaireLOCAL_USER_ALREADY_EXISTS, INVITATION_EMAIL_IN_USE, TAGLESS_USER_PROTECTED (409); INVALID_EMAIL (422); INVITATION_RESEND_THROTTLED (429) nuair atá tréimhse feithimh seachadta i bhfeidhm
Cealú cuireadh úsáideora áitiúilINVALID_EMAIL (422)
Nuashonrú/scriosadh úsáideora áitiúilTAGLESS_USER_PROTECTED (409)

Úsáideann gach toradh úinéireachta agus acmhainne ar iarraidh sna grúpaí sin, lena n-áirítear ríomhphost neamhchláraithe ar POST /users, an corp comhroinnte 404 RESOURCE_NOT_FOUND.

Freagraí gan chorp agus athsheinm

Níl corp i bhfreagra rathúil 204. Baineann sé seo le gach scriosadh doiciméadaithe a liostaíonn 204 empty. Socraíonn athsheinm idempotent críochnaithe Idempotency-Replayed: true agus úsáideann sé an stádas/chorp stóráilte; i gcás 204, fanann an freagra HTTP gan chorp. Ní thugann an API réad ratha JSON ar ais riamh d'oibríocht dhoiciméadaithe 204.