Sari la conținut

Referință API

Reguli de gestionare a erorilor

Pentru erorile rezultate în urma invocărilor interfeței REST, MDocs returnează erori HTTP (HTTP faults) cu coduri de eroare (fault codes) și motive ale erorii (fault reasons) care descriu eroarea în termeni simpli și clari.

Cod eroare Descriere
400 Bad Request Cererea introdusă nu este un JSON valid. Orice altă eroare care nu poate fi ocolită -- vă rugăm să rețineți că se oferă o explicație detaliată în response.
401 Unauthorized Declanșată dacă evenimentul de intrare nu poate fi identificat ca făcând parte din niciun IS.
403 Forbidden Codul de status indică faptul că serverul a înțeles cererea, dar refuză să o autorizeze.
404 Not Found URL-ul accesat nu este activ în acest moment (404). Nu au fost găsite date pentru parametrii furnizați.
413 Payload Too Large Informații despre limita maximă admisă pentru dimensiunea unui mesaj. Limita curentă pentru dimensiunea totală a mesajului este de 256 KB.
500 Internal Server Error Eroare declanșată de o funcționare defectuoasă a sistemului MDocs. Vă rugăm să contactați administratorii MDocs în cazul în care primiți o astfel de eroare.
507 Eroare de server.

Pentru clienții care utilizează limbaje de programare ce suportă blocuri try...catch, gestionarea erorilor HTTP este modalitatea corectă de a trata erorile de invocare a serviciului.

Documentele pot fi publicate de client atât pentru proprietarul documentului, cât și pentru alte identități.

Blobs

POST /blobs

Încarcă sau inițiază o încărcare parțială pentru un blob care reprezintă conținutul unui document

Parametri

Nume Tip de date Descriere
documentTypeCode string* codul tipului de document

*Obligatoriu

Corpul cererii:

{
  "idn": "2000009011288",
  "name": "Artur Reaboi",
  "Date": "2023-02-28",
  "Depts": [
    {
      "budgetCode": "Consolidat",
      "totalDebt": 31.36
    },
    {
      "budgetCode": "Bugetul asigurărilor sociale de stat",
      "totalDebt": 1436.44
    }
  ]
}

Răspunsuri:

Status HTTP Descriere Exemplu
201 Blob-ul a fost creat { "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6" }
400 Cerere incorectă - Un parametru este invalid
403 Forbidden

PUT /blobs/{id}

Continuă/finalizează încărcarea parțială pentru document. Intervalul dimensiunii unei părți poate fi de la 5 MiB la 5 GiB. Dimensiunea ultimei părți poate fi de la 0 B la 5 GiB.

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul blob-ului

*Obligatoriu

Corpul cererii:

{
  "idn": "2000009011288",
  "name": "Artur Reaboi",
  "Date": "2023-02-28",
  "Depts": [
    {
      "budgetCode": "Consolidat",
      "totalDebt": 31.36
    },
    {
      "budgetCode": "Bugetul asigurărilor sociale de stat",
      "totalDebt": 1436.44
    }
  ]
}

Răspunsuri:

Status HTTP Descriere
200 Blob-ul a fost actualizat
400 Cerere incorectă - Un parametru este invalid
403 Forbidden

DELETE /blobs/{id}

Marchează un blob ca fiind în curs de ștergere

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul blob-ului

*Obligatoriu

Răspunsuri:

Status HTTP Descriere
200 Blob-ul a fost șters
400 Cerere incorectă - Un parametru este invalid
403 Forbidden
404 Not found

POST /transform

Transformă fișierul încărcat în formatul de fișier selectat

Parametri

Nume Tip de date Descriere
documentTypeCode string* codul tipului de document
format string* formatul fișierului care va fi descărcat (Pdf sau Html)
language string limba utilizată pentru dicționare (Ro/En/Ru)

*Obligatoriu

Corpul cererii:

{
  "idn": "2000009011288",
  "name": "Artur Reaboi",
  "Date": "2023-02-28",
  "Depts": [
    {
      "budgetCode": "Consolidat",
      "totalDebt": 31.36
    },
    {
      "budgetCode": "Bugetul asigurărilor sociale de stat",
      "totalDebt": 1436.44
    }
  ]
}

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden

Documents

GET /documents

Afișează toate documentele pentru principalul curent

Parametri

Nume Tip de date Descriere
principal string principalul, dacă doriți să impersonați o identitate
type string filtrează lista pentru a afișa doar documentele de tipul furnizat
folderId string($uuid) (path) ID-ul folderului părinte
page integer($int32) numărul paginii pe care doriți să o afișați
itemsPerPage integer($int32) numărul de elemente de afișat pe pagină
orderField string ordonează lista după câmpul furnizat
searchBy string filtrează lista pentru a afișa documentele care au câmpuri ce conțin textul furnizat

Corpul răspunsului:

HTTP 200

[
  {
    "id": "de9eb38a-b7e0-4a4c-bc3c-018a5f3ccff9",
    "name": "Docname",
    "folderId": null,
    "folderName": "Root",
    "number": "5",
    "expiresOn": null,
    "type": "Cazier",
    "type_Name_Ro": "Cazier",
    "type_Name_En": null,
    "type_Name_Ru": null,
    "typeIcon": null,
    "size": 92951,
    "indicativeFlags": 0,
    "createdOn": "2023-09-04T06:44:56.912",
    "createdBy": "urn:md:idno:1010600034203",
    "createdByName": "Instituţia Publică CENTRUL DE GUVERNARE ELECTRONICĂ (E-GOVERNMENT)",
    "modifiedOn": "2023-09-12T13:02:25.5085277",
    "modifiedBy": "urn:md:idnp:2002027065619",
    "modifiedByName": "ELENA PLUGARU"
  }
]

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden
404 Not Found

POST /documents

Creează documente

Parametri

Nume Tip de date Descriere
blobId Guid* Conținutul efectiv al documentului. NULL pentru foldere.
principal String(100)* Cine este proprietarul documentului, în format URN: urn:md:idno/idnp
Name String(250)* Numele fișierului sau folderului
number String(50) Numărul documentului atribuit de emitentul documentului
expiresOn DateTime Dacă este setat, specifică data de expirare a documentului
createdOn DateTime Egal cu UploadedOn dacă nu este specificat
createdBy String(100) URN-ul principalului creator
folderId Guid Folderul părinte, care este un document fără BlobId

*Obligatoriu

Corpul cererii:

{
  "blobId": "49f62517-bfdc-438b-b625-018aac4fddfd",
  "documents": [
    {
      "principal": "urn:md:idnp:2002027065619",
      "name": "JsonDoc",
      "number": " XT-85214P",
      "expiresOn": "2023-11-19T07:10:24.338Z",
      "createdOn": "2023-09-19T07:10:24.338Z",
      "createdBy": "urn:md:idnp:2002027065619",
      "folderId": "110b0724-6f02-48c1-af48-018a6029ef71"
    }
  ]
}

Note: - Pentru ca documentul să fie publicat cu succes, "expiresOn" trebuie să fie mai mare decât "createdOn". - Dacă clientul nu setează o dată de expirare pentru tipul de document, atunci documentul creat va avea data de expirare a tipului de document căruia îi aparține blob-ul. - Dacă tipul de document căruia îi aparține blob-ul nu are setată o dată de expirare, atunci documentul creat va avea valoarea null pentru expiresOn. - La "createdOn" introduceți data de la care documentul va fi disponibil; este posibil ca, la setarea unei date de creare viitoare, documentul să fie disponibil de la data setată (câmp opțional). - Validarea formatului identităților se face după formula "urn:md:"

Corpul răspunsului:

HTTP 201 Created

[
  {
    "id": "a78e6501-877b-4969-bed7-018aad5406c8",
    "name": "Exemple (2)",
    "principal": "urn:md:idnp:2002027065619",
    "expiresOn": null
  }
]

Răspunsuri:

Status HTTP Descriere
201 Created
400 Cerere incorectă
403 Forbidden - Documentul nu poate fi creat deoarece principalul nu are permisiunea Write asupra folderului destinație sau în ierarhia superioară
404 Not Found
507 Eroare de server. Spațiu de stocare insuficient

GET /documents/{id}

Obține detaliile documentului

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Corpul răspunsului:

HTTP 200

{
  "id": "de9eb38a-b7e0-4a4c-bc3c-018a5f3ccff9",
  "name": "Docname",
  "folderId": null,
  "folderName": "Root",
  "number": "5",
  "expiresOn": null,
  "type": "Cazier",
  "type_Name_Ro": "Cazier",
  "type_Name_En": null,
  "type_Name_Ru": null,
  "typeIcon": null,
  "size": 92951,
  "indicativeFlags": 0,
  "createdOn": "2023-09-04T06:44:56.912",
  "createdBy": "urn:md:idno:1010600034203",
  "createdByName": "Instituţia Publică CENTRUL DE GUVERNARE ELECTRONICĂ (E-GOVERNMENT)",
  "modifiedOn": "2023-09-12T13:02:25.5085277",
  "modifiedBy": "urn:md:idnp:2002027065619",
  "modifiedByName": "ELENA PLUGARU"
}

Răspunsuri:

Status HTTP Descriere
200 Succes
403 Forbidden
404 Not Found

PATCH /documents/{id}

Actualizează documentul

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Corpul cererii:

{
  "name": "UpdatedDocName",
  "number": "XT-12345",
  "expiresOn": "2023-12-31T23:59:59Z"
}

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden
404 Not Found

DELETE /documents/{id}

Șterge documentul (mută în coșul de reciclare)

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Răspunsuri:

Status HTTP Descriere
200 Succes
403 Forbidden
404 Not Found

GET /documents/{id}/blob

Descarcă blob-ul documentului

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Răspunsuri:

Status HTTP Descriere
200 Succes - returnează conținutul binar al documentului
403 Forbidden
404 Not Found

GET /documents/{id}/versions

Obține versiunile documentului

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate
page integer($int32) numărul paginii pe care doriți să o afișați
itemsPerPage integer($int32) numărul de elemente de afișat pe pagină

*Obligatoriu

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden
404 Not Found

API-uri pentru partajarea documentelor

POST /documents/{id}/shares

Partajează un document cu una sau mai multe identități

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Corpul cererii:

{
  "shares": [
    {
      "sharedFor": "urn:md:idnp:2005042155206",
      "permission": "Read",
      "from": "2023-11-01T00:00:00",
      "to": "2023-11-30T23:59:59"
    }
  ]
}

Note: - permission: "Read" sau "Write" - from și to: interval de date opțional pentru partajare - from <= to și to > acum

Răspunsuri:

Status HTTP Descriere
201 Created
400 Cerere incorectă
403 Forbidden
404 Not Found

GET /documents/{id}/shares

Obține toate partajările pentru un document

Parametri

Nume Tip de date Descriere
id string($uuid) (path)* ID-ul documentului
principal string (query) principalul, dacă doriți să impersonați o identitate

*Obligatoriu

Corpul răspunsului:

HTTP 200

{
  "id": "48e0b28a-0784-471b-b0bd-018ae14636c5",
  "name": "json.json",
  "folderId": null,
  "number": "string",
  "type": "Unknown",
  "type_Name_Ro": "Unknown",
  "type_Name_En": null,
  "type_Name_Ru": null,
  "typeIcon": null,
  "size": 11081517,
  "createdOn": "2023-09-06T09:09:02.148974",
  "createdBy": "urn:md:idno:1018600049308",
  "createdByName": "CODWER S.R.L.",
  "modifiedOn": "2023-09-22T11:22:23.7414537",
  "modifiedBy": "urn:md:idno:1018600049308",
  "modifiedByName": "CODWER S.R.L.",
  "expiresOn": "2023-12-09T23:59:59",
  "shares": [
    {
      "id": "b07df74f-f1e5-43f6-ad86-018acd0632e7",
      "permission": "Write",
      "sharedOn": "2023-09-25T15:47:30.1517579",
      "sharedFor": "urn:md:idnp:2005042155206",
      "sharedForName": "LILIA GUPCA",
      "from": "2023-11-01T00:00:00",
      "to": "2023-11-04T00:00:00"
    },
    {
      "id": "08877815-ffd0-4af8-8284-018ae1465b0f",
      "permission": "Write",
      "sharedOn": "2023-09-29T14:09:59.0554621",
      "sharedFor": "urn:md:idno:1003600034203",
      "sharedForName": "LETO S.R.L.",
      "from": null,
      "to": null
    }
  ]
}

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden

API-uri pentru shares

GET /shares/for-me

Listează partajările făcute pentru principalul curent

Parametri

Nume Tip de date Descriere
principal string (query) principalul, dacă doriți să impersonați o identitate
page integer($int32) numărul paginii pe care doriți să o afișați
itemsPerPage integer($int32) numărul de elemente de afișat pe pagină
orderField string ordonează lista după câmpul furnizat
searchBy string filtrează lista pentru a afișa documentele care au câmpuri ce conțin textul furnizat

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden

GET /shares/by-me

Listează partajările făcute de principalul curent

Parametri

Nume Tip de date Descriere
principal string (query) principalul, dacă doriți să impersonați o identitate
page integer($int32) numărul paginii pe care doriți să o afișați
itemsPerPage integer($int32) numărul de elemente de afișat pe pagină
orderField string ordonează lista după câmpul furnizat
searchBy string filtrează lista pentru a afișa documentele care au câmpuri ce conțin textul furnizat

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden

POST /shares/reservations

Rezervă o partajare

Parametri

Nume Tip de date Descriere
generateAccessCode boolean generateAccessCode = true dacă doriți să generați un cod de acces

Corpul răspunsului:

HTTP 201

{
  "id": "1b3d3a56-72a3-4601-bf72-018af98d7a8e",
  "accessCode": "47211813",
  "fullLink": "https://mdocs.staging.egov.md/view/1b3d3a56-72a3-4601-bf72-018af98d7a8e?accessCode=47211813"
}

Răspunsuri:

Status HTTP Descriere
201 Created

Tipuri de documente

GET /document-types/{code}

Obține detaliile tipului de document

Parametri

Nume Tip de date Descriere
code String* Codul tipului de document

*Obligatoriu

Corpul răspunsului:

HTTP 200

{
  "code": "Spinner",
  "title_Romanian": "Spinner",
  "title_English": null,
  "title_Russian": null,
  "versioningEnabled": true,
  "icon": null
}

Răspunsuri:

Status HTTP Descriere
200 Succes

Principali

GET /principals/{id}/name

Obține numele principalului

Parametri

Nume Tip de date Descriere
id String (path)* principal

*Obligatoriu

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden

Cotă (Quota)

GET /quota

Obține informații despre cotă

Parametri

Nume Tip de date Descriere
principal String (query)* Principalul, dacă doriți să impersonați o identitate

Corpul răspunsului:

HTTP 200

{
  "storageMaximum": 50000000000,
  "storageUsage": 23082794
}

Răspunsuri:

Status HTTP Descriere
200 Succes
400 Cerere incorectă
403 Forbidden
507 Eroare de server