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 yeniOperationIddö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: Terror: string (hata durumunda dolar)
Not: Kod örneklerinde PRIMEAPI_URL ve PRIMEAPI_KEY ortam değişkenleri kullanılır.
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
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
}
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
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
}
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
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 }
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
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
}
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
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
}
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
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 }
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
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ış
UploadFileV2→operationIdalınır.- (Opsiyonel) Büyük dosya ise
ChunkInit → ChunkUpload (0..N-1) → ChunkCompleteakışı ile yükleyin; tamamlandığındaoperationIddöner. - Sonraki işlemler (PDF’e dönüştürme, imzalama vb.) için en son dönen
operationIdkullanılır.