/data sayfasındaki içe aktarmalarla aynı eşleme, doğrulama, hesaplama, onay ve kaynak satırı geçmişi akışını kullanır. Yinelenen kimliklerin nasıl işleneceğini API uç noktası belirler: /source-imports yalnızca yeni kimlikleri ekler, /source-imports/amendments yalnızca mevcut kimlikleri günceller. Dosya aktarımı varsayılanları bu kuralları değiştirmez.
Bu kılavuz kaynak adaptörü REST API’sini anlatır; MCP sunucusunu veya doğrudan aktivite oluşturmayı değil.
Başlamadan önce
Kurulumunuz, JSON kaynak içe aktarma API’sinin güncel sürümünü ve veritabanı migrasyonlarını kullanmalıdır. Kendi kurulumunuzun/api/v1/openapi.json dosyasında /source-adapters, /source-imports ve /source-imports/amendments yollarını, yanıtlardaki outcomes ve satır results alanlarıyla birlikte kontrol edin. Önceki API sürümleri bu sözleşmenin yalnızca bir bölümünü sunabilir. Bu kılavuzun yayımlanması kurulumu güncellemez. Aşağıdaki Şirket içi ve Helm split kurulumu bölümüne bakın.
Gereksinimler:
- Organizasyon sahibi tarafından JSON API girdi sözleşmesi tanımlanmış, aktif bir kaynak adaptörü.
- İlgili organizasyonda Ayarlar → API anahtarları (
/settings/api-keys) üzerinden alınmış bir API anahtarı. Entegrasyon için ayrı bir kullanıcı kullanın; anahtarı kaynak kodunda veya paylaşılan günlüklerde değil, bir gizli bilgi yönetim sisteminde saklayın. - İçe aktarma göndermek ve çalıştırmak için Collector, Approver, Manager veya Owner rolü ve hedef lokasyonlara erişim. Adaptör keşfi ve izin verilen çalıştırmaları okumak için Viewer erişimi yeterlidir.
- Örnekleri uygulamak için
curlvejq.
Authorization: Bearer YOUR_API_KEY kullanır. Organizasyonu ve kullanıcıyı anahtar belirler; tarayıcıda organizasyonu değiştirmek anahtarın hedefini değiştirmez. Rol, aktif üyelik ve lokasyon erişimi güncel izinlere göre kontrol edilir.
AZALT_API_KEY ortam değişkenini güvenli biçimde ayarlayın. Temel URL olarak kendi kurulumunuzu kullanın; sonuna eğik çizgi veya /api/v1 eklemeyin:
https://app.azalt.co kullanılır. Şirket içi entegrasyonlarda müşterinin kendi Azalt adresi kullanılır.
1. Adaptörü etkinleştirin
Organizasyon sahibi Özelleştirme → Kaynak adaptörleri bölümünden adaptörü düzenler ve JSON API girdi sözleşmesi alanını doldurur. Adaptörü aktif tutun ve yapılandırmayı kaydedin. Aşağıdaki örnek kurgusal fatura değerleri içeren bir şablondur; tüm faturalar için ortak bir format değildir. Sözleşme, adaptör betiğinin kullandığı sayfa ve sütun adlarıyla eşleşmelidir. Sözleşme girdiyi tanımlar ve doğrular; betiği veya hedef eşlemelerini değiştirmez.enabled değerini false yapmak, dosya yüklemelerini kapatmadan yeni JSON içe aktarmalarını durdurur. Daha önce kaydedilmiş önizlemeler eşlenmiş taslaklarını korur.
Yeni satır veya güncelleme göndermeden önce Satır kimliği alanları seçimini
yapın ya da adaptör betiğinin sabit satır kimlikleri ürettiğinden emin olun.
Girdi sözleşmesinde invoice_id ve line_id tanımlamak, bu alanları satır kimliği
olarak seçmez. Aşağıdaki kimlik yapılandırmasına
bakın. apiReady: true, adaptörün aktif ve sözleşmenin etkin olduğunu belirtir;
verileriniz için geçerli satır kimliklerini veya hedef eşlemelerini garanti etmez.
Kabul edilen veri türleri
Alanlarda
description, example, required (varsayılan false) ve nullable (varsayılan false) bulunabilir. required, anahtarın bulunmasını zorunlu kılar; metnin boş olmamasını değil. Açıkça null göndermek için nullable: true gerekir; gönderilmeyen isteğe bağlı alanlar doldurulmaz. Tarihler metin olarak kalır ve türler arasında otomatik dönüşüm yapılmaz. "1.234,50" gibi yerel biçimli tutarları yalnızca adaptörünüz bu biçimi ayrıştırıyorsa string olarak tanımlayın.
Sayfa ve sütun adları tam eşleşir, büyük/küçük harfe duyarlıdır. Bilinmeyen sayfalar reddedilir. Sayfada additionalColumns: true yoksa bilinmeyen sütunlar da reddedilir. Zorunlu sayfada en az bir satır bulunmalıdır. Adların başında/sonunda boşluk veya ayrılmış nesne anahtarları bulunamaz. Hücreler iç içe nesne veya dizi, NUL karakteri ya da geçersiz Unicode içeremez.
Boşluklar, sıfır, mantıksal değerler, null ve negatif sayılar dahil kaynak değerler korunur. Hedef tutarların pozitif olması gerekiyorsa dönüşümü adaptörde uygulayın; API otomatik olarak mutlak değer almaz. Kaydedilen kaynakta gönderilen negatif değer görünmeye devam eder.
2. Adaptörleri ve sözleşmelerini listeleyin
id, name, description, isActive, apiReady ve adapterVersion alanlarını içeren bir dizidir. apiReady: true olan bir adaptör seçin. Sonraki sayfa için offset değerini artırın; limit varsayılan olarak 50’dir ve 100’ü geçemez.
Aşağıdaki ID’yi seçtiğiniz adaptörün ID’siyle değiştirin:
submission.json dosyasını düzenleyin: örnek satırları gerçek verilerle değiştirin, doğru context.year ve gerekiyorsa context.siteId değerlerini girin. Örnek değerler iş kurallarına uygun eşleme garantisi vermez. Yıl 1900–2200 arasında bir tamsayı olmalı, lokasyon ID’si entegrasyon kullanıcısının erişebildiği bir lokasyona ait olmalıdır.
İstek yapısı aşağıdaki gibidir. ADAPTER_ID ve COPY_VERSION_FROM_ADAPTER_RESPONSE yer tutucudur: uç noktadan dönen gerçek ID’yi ve 64 karakterlik adapterVersion değerini aynen kullanın. Üretilen exampleRequest bunları zaten içerir.
3. Önizleme gönderin
Her mantıksal veri paketi için sabit bir idempotency anahtarı belirleyin. Yeniden denemeler için hem anahtarı hem istek gövdesini saklayın; zaman aşımından sonra yeni bir anahtar üretmeyin.preview’dur. Kaynak satırlarını ve eşlenmiş taslakları kaydeder, ancak hedef kayıtları yazmaz. Her sayfanın ilk veri satırı rowIndex: 2 alır; 1. satır Excel başlık düzeni için ayrılmıştır.
Satır bazındaki sonuçları okuyun ve çalıştırma için ek onay gerekip gerekmediğini kontrol edin:
rows ve total içerir. Her satırda sheetName, rowIndex, rawRow, status, warnings, error, externalRowIds ve results bulunur. Sayfalama varsayılan olarak 100 satırdır, en fazla 200 olabilir. total kadar satır okuyana kadar offset değerini aldığınız satır sayısı kadar artırın.
İsteğe bağlı status=failed filtresi yalnızca kayıtlı satır durumlarını seçer; bu durumda total yalnızca eşleşen satırları sayar. Önizlemede çakışan satırların durumu hâlâ status: "ready" olabilir. Satırları durum filtresi olmadan alın; satır hatalarının yanı sıra results içinde phase: "planned" ve action: "failed" olan sonuçları inceleyin. Çalıştırma yanıtındaki outcomes.planned.failed alanını da kontrol edin.
readiness eksik form/lokasyon/yıl açılışlarını kontrol eder. İş kaydı kimliklerinin eşleşmesini doğrulamaz veya başarılı çalıştırmayı garanti etmez. Güncellemeler eksik hedefleri oluşturamadığı için güncelleme taslakları bu açılış kontrolüne dahil edilmez. Önizlemede execution.attempted: false ve execution.blocked: false olması satırların geçerli olduğu anlamına gelmez.
4. Kaydedilen önizlemeyi çalıştırın
Eşleme sonuçlarını ve hazırlık durumunu inceledikten sonra aynı çalıştırma ID’sini kullanın:execution.blocked: true ile execution.readiness.missingFormSites döndürür. Hazırlık uç noktası da etkilenen formları, lokasyonları, yılları ve kaynak satırlarını listeler. Bu onay eksik form açılışlarını oluşturmaya izin verir; eşleşmeyen bir güncellemenin başarılı olmasını sağlamaz.
Eksik form açılışlarını ancak inceleyip onayladıktan sonra, çalıştırma isteğini şu gövdeyle tekrarlayın:
mode: "execute" kullanmak tek istekte önizleme oluşturur ve çalıştırır. İşlem eşzamanlıdır; arka plan kuyruğuna bırakılmaz. İlk gövdede açıkça allowMissingFormSiteCreation: true belirtilmedikçe eksik form açılışları yine onay gerektirir.
Sonucu yorumlama
HTTP 200, hattarun.status: "completed" bile her satırın içe aktarıldığını garanti etmez. Bazı satırlar hata verirken geçerli taslaklar işlenebilir. Her zaman execution.blocked, satır sayıları, outcomes ve satır bazında results, uyarı ve hataları kontrol edin.
Bir kaynak satırı birden fazla taslak üretebilir.
failed durumundaki bir satırda başarılı taslaklar da bulunabilir; neyin düzeltilmesi gerektiğine karar vermeden önce her sonucu inceleyin. Gerçek yazım sayıları run.activityWriteCount ve run.formValueWriteCount alanlarındadır. Aktarılan değerler normal onay ve raporlama yapılandırmasına tabidir; içe aktarmanın tamamlanması onayı atlamaz veya her kayıt görünümünde görünmeyi garanti etmez.
JSON içe aktarmaları normal içe aktarma geçmişinde “API submission” içeren bir adla görünür. Kayıtlar tablosunda yapılandırılmış kaynak belge bağlantıları, kaydedilen satırlarda arama yapmayı ve bunları uygulama içinde veya tam ekran açmayı destekler. Yalnızca JSON gönderiminde indirilebilecek orijinal bir Excel dosyası yoktur.
Önceden aktarılan satırları güncelleyin
Sahipler Özelleştirme → Kaynak adaptörleri bölümünde Satır kimliği alanları ayarını aranabilir sütun listesinden seçer. Liste API sözleşmesinden, adaptör sütun ayarlarından veya Örnek dosyadan sütunları yükle seçeneğinden gelir (CSV/Excel, tüm sayfalar; yalnızca başlıklar kaydedilir). Bilinmeyen sütun adları eklenemez veya kaydedilemez. Kaynağınızda bir satırı benzersiz olarak tanımlayan sabit alanları seçin. Örneğin, fatura satırları içininvoice_id ve line_id birlikte
kullanılabilir.
Adaptör yapılandırması (inputFormat): Bu ayarları adaptöre kaydedin.
Bu blok, /source-imports veya /source-imports/amendments için istek gövdesi değildir.
sourceColumns listesi örnek dosyadan okunan başlıkları temsil eder;
alanlar API sözleşmesinde veya adaptör sütun ayarlarında zaten tanımlıysa gerekli
değildir. Örnek alan adlarını kaynağınızdaki başlıklarla değiştirin. Seçtiğiniz
kimlik sütunlarını JSON API
girdi sözleşmesine de ekleyin. Baştaki sıfırları korumak için kimlikleri metin
olarak gönderin. match: "all" tüm alanları zorunlu kılar. match: "first"
yapılandırılmış sırayı izler; eksik değerleri, null ve boş metinleri atlar.
Yalnızca boşluk içeren metinler ile metin veya güvenli tamsayı dışındaki değerler
atlanmaz, geçersiz sayılır. Önce sözleşme doğrulaması yapılır: eksik zorunlu sütunlar
veya geçersiz alan türleri isteğin HTTP 400 ile reddedilmesine yol açar. Bundan
sonra eksik veya geçersiz iş kaydı kimlikleri önizleme eşlemesinde satır hatası
olarak bildirilir.
Bu ayarlar adaptörün inputFormat alanına aittir.
GET /source-adapters/{id}, yapılandırılmış rowIdentity ve dosya aktarımının
varsayılan onExistingRow değerini döndürür. Yazma işlemini API uç noktası belirler;
adaptörün varsayılanı bu davranışı değiştiremez. Tüm yollar /api/v1 altındadır.
İki uç nokta da istek gövdesinde
onExistingRow kabul etmez. Gönderilirse güncelleme
uç noktasını açıklayan HTTP 400 yanıtı döner. Her iki uç nokta da yapılandırılmış
kimlik alanları veya adaptörün ürettiği sabit kimlikler gerektirir. Kimlikler ve hedef
eşlemesi kaynak adaptöründen gelir; planlanan sonuçların yanı sıra satır hatalarını
da inceleyin.
Dosya aktarımlarında Mevcut satırla karşılaşıldığında seçeneği korunur:
insert_only mevcut kimlikleri, update_only eşleşmeyen kimlikleri reddeder;
update eşleşenleri güncelleyip yeni kimlikleri ekler, skip eşleşenleri koruyup
yeni kimlikleri ekler. append önceki davranışı sürdürür (yeni faaliyetler veya
form değeri toplamlarının değiştirilmesi). Bu dosya aktarımı seçenekleri API uç
noktasının davranışını değiştirmez.
Eşleştirme adaptör ve hedef kapsamında yapılır: form, eleman, tesis, yıl ve dönem.
Düzeltmeler bu hedefteki veriyi değiştirir. Kimliği veya hedefi değiştirmek yeni
satırı temsil eder; yalnızca güncelleme modunda bu satır reddedilir. Faaliyet güncellemeleri iç kimlikleri korur, değerleri yeniden
hesaplar ve onay kurallarını uygular. Form değeri güncellemeleri eşleşen satırın
katkısını değiştirip diğer satırları koruyarak toplamı yeniden hesaplar. Güncelleme
paketinde her iş kaydı kimliğini hedef başına yalnızca bir kez gönderin. Yinelenen
eşleşen kimlikler tek güncelleme ve atlanan taslaklar üretebilir; sayfalar arasında
hangi tekrarın kullanılacağına güvenmeyin. Mevcut kayıtlardaki belirsiz yinelenen
kimlikler reddedilir.
GET /source-imports/{id}/rows, iş kaydı kimliklerini incelemek için
externalRowIds döndürür. Eski faaliyetler kaydedilen kaynak hücreleriyle; eski
form değerleri kayıtlı taslak geçmişiyle eşleştirilir. Düzeltmeler için bu kaynak
bilgilerinin korunmuş olması gerekir.
Düzeltmeleri yeni bir Idempotency-Key ile gönderin. Bu başlık aktarım isteğini,
satır kimlikleri ise aktarımlar arasındaki iş kayıtlarını tanımlar. Kimlik ayarları
ve varsayılan davranış adapterVersion kapsamındadır. Kaydedilmiş önizlemeler,
adaptör sonradan düzenlense de kendi kimlik ayarlarını ve davranışlarını korur.
Yalnızca yeni satırları ekleyin
POST /source-imports, mevcut bir kaynak satırının katkısını güncellemez.
Eşleşen kimlik için errorCode: "ROW_ALREADY_EXISTS" döner; message, düzeltmelerin
POST /api/v1/source-imports/amendments ile gönderilmesi gerektiğini açıklar.
Satır sonuçları iş kaydı kimliğini, kaynak satırı kimliğini ve hedefi de içerir.
Bir ekleme paketinde aynı hedef için kimlik tekrarlanırsa tüm tekrarlar
DUPLICATE_ROW_ID ile reddedilir. Her yeni satırı bir kez gönderin. Kimlik zaten
mevcutsa ROW_ALREADY_EXISTS önceliklidir. Aynı Idempotency-Key ve gövdeyle
tekrarlanan paket isteği kaydedilmiş çalıştırmayı döndürür; yeni ekleme sayılmaz.
Form değerlerinde yeni bir kaynak katkısı eklemek mevcut toplam kaydını yeniden
hesaplayabilir. Önceden aktarılan katkılar korunur, değerleri değiştirilmez.
Hedefte bir değer varsa ancak bu adaptörün kaynak katkı geçmişi yoksa
UNTRACKED_FORM_VALUE yanlışlıkla üzerine yazmayı önler. Yeni katkılar eklemeden
önce hedefin kaynak geçmişini uzlaştırın.
Önizleme çakışmaları outcomes.planned.failed ve her satırın results alanında
görünür. Eşleme başarılı olduğu için satırın status alanı hâlâ ready olabilir.
Çalıştırmada çakışan taslaklar başarısız olurken geçerli taslaklar eklenebilir.
HTTP 200 tüm satırların başarılı olduğu anlamına gelmez; outcomes.actual.failed
ve GET /source-imports/{id}/rows sonuçlarını kontrol edin. Önizlemeden sonra başka
bir paket kimliği eklemiş olsa bile eşleşmeler çalıştırmada adaptör kilidi altında
yeniden kontrol edilir.
Mevcut API istemcisini yeni sözleşmeye taşıma
JSON isteklerindenonExistingRow alanını kaldırın. Yeni satırları /source-imports,
tam düzeltilmiş satırları /source-imports/amendments ile gönderin. Karma ekleme ve
güncelleme paketlerini işleme göre ayırın. Yeniden denemelerde uç nokta ve gövde aynı
kalmalıdır; aynı anahtarı hem ekleme hem güncelleme için kullanmak 409 döndürür.
Önceden kaydedilmiş önizlemeler özgün davranışlarını korur. Çalıştırmadan önce
inceleyin veya amaçlanan uç noktayla yeni bir önizleme oluşturun. Önceki sözleşmeyle
kaydedilen istekler, değiştirilmiş gövdeyle yeniden kullanılamayabilir. Başarılı
veriyi tekrar göndermek yerine kaydedilmiş çalıştırma kimliğiyle durumunu inceleyin.
Yalnızca mevcut satırları güncelleyin
Yapılandırılmış iş kaydı kimliklerini ve hedef alanlarını koruyarak düzeltilmiş kaynak satırlarının tamamınıPOST /source-imports/amendments uç noktasına
gönderin. Gövde normal gönderimle aynı kaynak satırı sözleşmesini kullanır; onExistingRow kabul
etmez ve allowMissingFormSiteCreation yalnızca false olabilir. Adaptörün
varsayılanı eklemeye izin verse bile sunucu yalnızca güncelleme uygular.
Idempotency-Key kullanın; yeniden denemelerde aynı
anahtar ve gövdeyi koruyun. Uç nokta varsayılan olarak bir düzeltme önizlemesi
oluşturur. İncelemeden sonra dönen çalıştırmayı POST /source-imports/{id}/execute
ile çalıştırın veya ilk istekte mode: "execute" gönderin. Özgün hedef satırı
önceden içe aktarılmış olmalıdır; yalnızca önizleme oluşturmak güncellenecek bir
hedef kaydı oluşturmaz.
Eşleşmeyen kimlik veya hedef, ilgili eşlenmiş satırda hata oluşturur. Yeni faaliyet,
form değeri katkısı veya hedef kaydı eklenmez. Paketin diğer geçerli satırları
başarılı olabilir; HTTP 200 yanıtında da sonuçları kontrol edin. Hedefler çalıştırma
sırasında yeniden kontrol edilir. Adaptörün varsayılanı değişse bile kaydedilmiş
önizlemeler yalnızca güncelleme kuralını korur.
Bu uç nokta, geçmiş ve satır bazında sonuçları olan bir toplu işlem oluşturduğu
için POST kullanır. Kısmi JSON Patch belgesi kabul etmez. Belirli bir kaydı
PATCH ile değiştirmek farklı bir sözleşmedir ve HTTP PATCH belirtiminin
gerektirdiği atomik uygulamayı sağlamalıdır.
Eklenen ve güncellenen satırları ayırt etme
Gönderim, çalıştırma veGET /source-imports/{id} yanıtları şu alanları içerir:
GET /source-imports/{id}/rows, her kaynak satırı için bir results dizisi döndürür.
Her sonuç phase (planned veya actual), action, externalRowId, draftId, sourceImportRowId,
hedef alanları (kind, formId, targetKey, siteId, year, periodUnit),
activityId, formElementSubmissionId, errorCode ve varsa hata message alanını içerir.
Belirli bir hata kodu yoksa errorCode null olur; her zaman message alanını inceleyin.
Planlanan eylemler de updated gibi aynı adları kullanır, ancak tahmindir.
Yeni bir hedef kayda planlanan eklemede henüz oluşturulmuş kayıt kimliği yoktur.
Mevcut bir toplam kaydına eklenecek yeni form değeri katkısı, o toplamın
formElementSubmissionId değerini zaten içerebilir. Tahminler salt okunurdur ve
hedef veriler değiştikçe değişebilir; çalıştırma eşleşmeleri yeniden kontrol eder.
Sonuç sayıları eşlenmiş taslak başınadır. Bir kaynak satırı, aynı hedef için
birden fazla taslak dahil, birçok taslak üretebilir. Bu sayılar benzersiz kaynak
satırlarını veya hedef kayıtlarını saymaz. Form değeri aktarımlarında
inserted/updated satırın katkısını tanımlar; birden fazla katkı aynı toplam kaydını
paylaşabilir.
run.activityWriteCount ve run.formValueWriteCount hedef yazımlarını sayar.
counts.imported başarılı ekleme ve güncellemeleri birlikte saymaya devam eder;
counts.reduced başka bir satırın toplamında birleştirilen katkıları tanımlar.
Taslak üretmeyen kaynak satırları mevcut satır sayıları, durum ve hatalarla görünür.
Güncellenmiş satırları belirlemek için replayed kullanmayın; bu alan paket
isteğinin yeniden denendiğini belirtir.
Eylem ve hedef kimlikleri, veri yazımıyla aynı veritabanı işleminde kaydedilir.
Hedef daha sonra değişse de bu sonuçlar korunur. Dosya aktarımı önizlemeleri ve
geçmişi aynı beklenen ve kaydedilmiş sonuçları gösterir.
Veri aktardıktan sonra satır kimliği kuralını değiştirme
Kimlik alanlarını, sıralarını veyaall/first seçimini değiştirmek mevcut
satırları ya da geçmiş aktarımlardaki kimlikleri yeniden yazmaz. Kalıcı veritabanı
kimlikleri korunur. Yeni kural kaydedilirken otomatik kimlik geçişi veya mevcut
satırlar için uyumluluk kontrolü yapılmaz.
- Faaliyetler: Sonraki update/skip gönderiminde Azalt, mevcut faaliyetlerin kayıtlı kaynak hücrelerinden yeni kuralla eşleştirme kimlikleri üretir. Tek bir eşleşme bulunursa veritabanı kimliği korunarak güncellenebilir. Kayıtlı kaynakta gerekli alanlar yoksa faaliyet eşleşemez. Güncelleme uç noktası eşleşmeyen satırı reddeder. Yalnızca ekleme yapan API gönderimleri ve eklemeye izin veren dosya aktarımları bu satırı yeni sayıp yinelenen kayıt oluşturabilir. Birden fazla mevcut eşleşme reddedilir.
- Form değerleri: Eski aktarımlar kayıtlı kaynak taslaklarıyla eşleştirilebilir.
Bir hedefin kaydedilmiş güncelleme katkı listesi varsa kimlik kuralını değiştirmek
sonraki güncellemeleri engeller. Yeni kuralla güncellemeye başlamadan önce ilgili
form değeri hedefine katkı yapan tüm satırları dosya aktarımı akışında
appendseçeneğiyle tam değiştirme olarak içe aktarın. JSON API bu değiştirme işlemini desteklemez ve istek gövdesindekionExistingRowalanını reddeder. Bu değiştirme davranışı form değerleri içindir;appendfaaliyetlerde yeni kayıt oluşturur. - API sürümleri ve önizlemeler: Kural değişince güncel
adapterVersiondeğerini alın. Eski sürümle yapılan yeni gönderimler 409 döndürür. Kaydedilmiş önizlemeler özgün kurallarını kullanmaya devam eder.
Yeniden denemeler ve adaptör değişiklikleri
POST /source-importsvePOST /source-imports/amendmentsiçinIdempotency-Keyzorunludur: boşluk içermeyen 1–200 yazdırılabilir ASCII karakteri. Kapsamı organizasyon ve API anahtarı sahibidir.- Aynı anahtar ve gövde tekrar gönderilirse aynı çalıştırma
replayed: trueile döner. Nesne anahtarlarının sırası önemsizdir; sayfa ve satır dizilerinin sırası önemlidir. Aynı anahtarla farklı veri, mod, sürüm veya onay ayarı göndermek 409 döndürür. - Önizlemeyi çalıştırmak için
/source-imports/{id}/executeçağrısını kullanın. İlk isteğinmodedeğerini aynı anahtar altında değiştirmeyin. Çalıştırma uç noktası idempotency başlığı gerektirmez ve aynı çalıştırma için güvenle tekrarlanabilir. - Zaman aşımı veya geçici hata sonrasında aynı isteği/çalıştırmayı tekrarlayın. Veritabanı kilitleri farklı replikalardan ve arayüzden gelen eşzamanlı denemeleri koordine eder. Bazı yazımlar tamamlanmış olabilir; aynı çalıştırmayı tekrarlamak yeni içe aktarma başlatmak yerine kalan hazır taslakları tamamlar.
- Farklı anahtarlar farklı aktarımlar oluşturur. Genel POST eşleşen iş kaydı kimliklerini reddeder; amendments bunları günceller. Değişmemiş paketi yeni aktarım olarak göndermek yerine özgün anahtarıyla yeniden deneyin.
- Betik veya girdi sözleşmesi değişikliği
adapterVersiondeğerini günceller. Eski sürümle yapılan yeni gönderimler 409 döndürür. Güncel sözleşmeyi alın, değişiklikleri inceleyin ve yeni bir paket hazırlayın. Mevcut önizlemeler, düzenlenmiş adaptör betiğini yeniden çalıştırmadan kaydedilmiş taslaklarını işler. - Adaptör hata verirse kaydedilen satır hatalarını inceleyin, girdiyi veya adaptörü düzeltin ve düzeltilmiş paketi yeni anahtarla gönderin. Hatalı isteği değiştirmeden tekrarlamak eşlemeyi yeniden çalıştırmaz.
- Silinmiş çalıştırmalara bu uç noktalardan erişilemez. Kalıcı silme idempotency rezervasyonunu korur; aynı anahtarı tekrar kullanmak yeni içe aktarma değil 409 döndürür.
Uç nokta referansı
Aşağıdaki tüm yollar kendi kurulumunuzdaki/api/v1 önekine göredir. Kurulumun /api/v1/openapi.json dosyası dağıtılmış sürümün istek ve yanıt şemalarını sunar.
Sınırlar ve hatalar
Her istek en fazla 10 MiB JSON, toplam 10.000 satır, 50 sayfa, satır başına 200 sütun ve metin hücresi başına 16.000 karakter destekler. Metin uzunluğu UTF-16 kod birimi olarak ölçülür; emoji gibi karakterler iki birim sayılabilir. Daha büyük veri kümelerini farklı anahtarlara sahip ayrı paketlere bölün. Ingress veya barındırma sağlayıcınız daha düşük gövde boyutu ya da zaman aşımı sınırı uygulayabilir.
İş kuralı doğrulama hataları HTTP hatası yerine satır sonucu olarak dönebilir. Bir paketi başarılı saymadan önce her zaman yanıt gövdesini inceleyin.
Şirket içi ve Helm split kurulumu
API hem birleşik Next.js uygulamasında hem de Helm split kurulumlarının bağımsız backend servisinde çalışır. Normal frontend adresinizi veya kurulum yöneticisinin özellikle dışarı açtığı bir backend adresini kullanın. Entegrasyonu etkinleştirmeden önce kurulum yöneticisi:- Hedef veritabanını yedeklemeli ve normal Helm migrasyon işi/süreciyle sürümdeki tüm bekleyen migrasyonları uygulamalıdır. Bunlar, isteklerin yinelenmesini önleyen tabloyu oluşturan
20260908000000_add_source_import_api_requests.tsmigrasyonunu da içerir. - Split kurulumda birbirine uyumlu güncel frontend ve backend imajlarını dağıtmalıdır. Yalnızca frontend’i güncellemek backend uç noktalarını eklemez.
- Ingress/proxy üzerinde
/api/v1yönlendirmesini veAuthorization,Content-Type,Idempotency-Keybaşlıklarını korumalıdır. Kimlik doğrulamalı yanıtlar önbelleğe alınmamalıdır. - İstek gövdesi ve eşzamanlı istek zaman aşımı sınırlarını kontrol etmeli; ardından dağıtılmış OpenAPI belgesini doğrulayıp çalıştırma öncesinde küçük, incelenmiş bir önizleme denemelidir.

