CoreApiFile (v2.0)

CoreApiFile, PrimeAPI’de dosya yönetimi için kullanılan uç noktaları içerir. Tek seferde yükleme (multipart) ya da büyük dosyalar için parçalara bölerek (chunked upload) yükleme akışını destekler. Başarılı bir yüklemeden sonra sistem bir OperationId üretir; sonraki işlemler (PDF’e dönüştürme, imzalama, indirme vb.) bu OperationId üzerinden çalışır.

Temel kavramlar

  • OperationId: Her adımda güncellenebilen işlem kimliği. Bir adım yeni bir çıktı üretiyorsa yanıt içinde yeni OperationId döner ve takip eden adımlarda bu yeni değer kullanılmalıdır.
  • Auth: Tüm uç noktalar ApiKey gerektirir.
  • Zarf: Tüm yanıtlar ApiResult<T> tipindedir:
    • result: T
    • error: string (hata durumunda dolar)

Not: Kod örneklerinde PRIMEAPI_URL ve PRIMEAPI_KEY ortam değişkenleri kullanılır.


POST/v2.0/CoreApiFile/UploadFile

UploadFileV2 — Tek seferde yükleme

Tek bir HTTP isteği ile dosya yükler ve yeni bir OperationId döner. Bu OperationId takip eden işlemlerde (ör. PDF’e dönüştürme veya imzalama) kullanılmalıdır.

Gerekli alanlar

  • Name
    file
    Type
    multipart/form-data
    Description

    Yüklenecek dosya.

Request

POST
/v2.0/CoreApiFile/UploadFile
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/UploadFile" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@/path/to/document.pdf"

Response

{
  "result": {
    "isSuccess": true,
    "operationId": "11111111-1111-1111-1111-111111111111"
  },
  "error": null
}

POST/v2.0/CoreApiFile/ChunkInit

InitializeChunkedUploadV2 — Parça/parça yükleme başlat

Büyük dosyalar için parça bazlı yükleme oturumu başlatır. Dönen uploadSessionId ile parçalar gönderilir. Bu çağrı ayrıca işlemin operationId değerini de üretir.

Gerekli alanlar

  • Name
    chunkSize
    Type
    integer
    Description

    Her parçanın bayt cinsinden boyutu (örnek: 8–16MB aralığı).

  • Name
    totalSize
    Type
    integer
    Description

    Dosyanın toplam bayt cinsinden boyutu.

  • Name
    totalChunks
    Type
    integer
    Description

    Toplam parça sayısı (ceil(totalSize / chunkSize)).

  • Name
    requestId
    Type
    string
    Description

    İsteğin tekil kimliği (BaseRequest).

  • Name
    displayLanguage
    Type
    string
    Description

    Dil tercihi (BaseRequest).

Request

POST
/v2.0/CoreApiFile/ChunkInit
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/ChunkInit" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{
        "chunkSize": 8388608,
        "totalSize": 52428800,
        "totalChunks": 7,
        "requestId": "aaaaaaaaaaaaaaaaaaaaa",
        "displayLanguage": "tr"
      }'

Response

{
  "result": {
    "uploadSessionId": "22222222-2222-2222-2222-222222222222",
    "operationId": "33333333-3333-3333-3333-333333333333",
    "chunkSize": 8388608,
    "totalChunks": 7
  },
  "error": null
}

POST/v2.0/CoreApiFile/ChunkUpload

UploadChunkV2 — Parça yükle

Bir parçayı yükler. Aynı chunkindex tekrar gönderilirse idempotent şekilde kabul edilir.

Gerekli başlıklar

  • Name
    uploadsessionid
    Type
    uuid
    Description

    InitializeChunkedUploadV2 çağrısından dönen oturum kimliği.

  • Name
    chunkindex
    Type
    integer
    Description

    0 tabanlı parça indeksi.

Gövde

application/octet-stream ham bayt verisi.

Request

POST
/v2.0/CoreApiFile/ChunkUpload
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/ChunkUpload" \
  -H "X-API-KEY: {api_key}" \
  -H "uploadsessionid: 22222222-2222-2222-2222-222222222222" \
  -H "chunkindex: 0" \
  --data-binary @chunk_0.part

Response

{ "result": { "accepted": true }, "error": null }

POST/v2.0/CoreApiFile/ChunkStatus

GetUploadStatusV2 — Parça durumu

Oturum için sunucuya ulaşmış parça indekslerini listeler.

Gerekli alanlar

  • Name
    uploadSessionId
    Type
    uuid
    Description

    Yükleme oturumu kimliği.

Request

POST
/v2.0/CoreApiFile/ChunkStatus
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/ChunkStatus" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{ "uploadSessionId": "22222222-2222-2222-2222-222222222222" }'

Response

{
  "result": {
    "totalChunks": 7,
    "receivedChunkIndices": [0,1,2]
  },
  "error": null
}

POST/v2.0/CoreApiFile/ChunkComplete

CompleteChunkedUploadV2 — Parçaları birleştir

Tüm parçaları doğrular ve birleştirir. Başarılı olursa orijinal dosyayı hazırlar ve operationId döner.

Gerekli alanlar

  • Name
    uploadSessionId
    Type
    uuid
    Description

    Yükleme oturumu kimliği.

Request

POST
/v2.0/CoreApiFile/ChunkComplete
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/ChunkComplete" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{ "uploadSessionId": "22222222-2222-2222-2222-222222222222" }'

Response

{
  "result": {
    "isSuccess": true,
    "operationId": "33333333-3333-3333-3333-333333333333"
  },
  "error": null
}

POST/v2.0/CoreApiFile/ChunkAbort

AbortChunkedUploadV2 — Yüklemeyi iptal et

Parça dosyalarını temizleyerek oturumu iptal eder.

Gerekli alanlar

  • Name
    uploadSessionId
    Type
    uuid
    Description

    Yükleme oturumu kimliği.

Request

POST
/v2.0/CoreApiFile/ChunkAbort
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/ChunkAbort" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{ "uploadSessionId": "22222222-2222-2222-2222-222222222222" }'

Response

{ "result": { "aborted": true }, "error": null }

POST/v2.0/CoreApiFile/DownloadCore

DownloadCoreV2 — Dosya indir

Verilen operationId ile ilişkili dosyayı döner. Bu, yüklenen orijinal dosya veya takip eden adımlarda üretilen farklı bir çıktı olabilir.

Gerekli alanlar

  • Name
    operationId
    Type
    uuid
    Description

    İndirilecek dosyanın ilişkili işlem kimliği.

Request

POST
/v2.0/CoreApiFile/DownloadCore
curl -X POST "https://apitest.onaylarim.com/v2.0/CoreApiFile/DownloadCore" \
  -H "X-API-KEY: {api_key}" \
  -H "Content-Type: application/json" \
  -d '{ "operationId": "33333333-3333-3333-3333-333333333333" }'

Response

{
  "result": {
    "operationId": "33333333-3333-3333-3333-333333333333",
    "fileData": "BASE64_BYTES...",
    "fileName": "document.pdf"
  },
  "error": null
}

Örnek akış

  1. UploadFileV2operationId alınır.
  2. (Opsiyonel) Büyük dosya ise ChunkInit → ChunkUpload (0..N-1) → ChunkComplete akışı ile yükleyin; tamamlandığında operationId döner.
  3. Sonraki işlemler (PDF’e dönüştürme, imzalama vb.) için en son dönen operationId kullanılır.

Was this page helpful?