FormRead Sunucu Tarafı İşleme API'si
Sunucu Tarafı Form İşleme
FormRead Sunucu Tarafı API, taranmış bir form görüntüsü göndermenize ve yapılandırılmış sonuçları (OMR, OCR, BCR) doğrudan JSON olarak almanıza olanak tanır. Tarayıcı yok, iframe yok - sadece arka ucunuzdan bizimkine basit bir HTTP isteği.
- Bir görüntü gönderin, sonuçları tek bir istekte JSON olarak geri alın
- OMR (baloncuk algılama), OCR (metin çıkarma) ve BCR (barkod/QR okuma) destekler
- Form yapılandırması, kontrol panelinde ayarladığınız formdan otomatik olarak yüklenir
Bu API Ne Zaman Kullanılır
Sunucu tarafı API'yi, herhangi bir kullanıcı arayüzü olmadan otomatik, sunucudan sunucuya işleme ihtiyacınız olduğunda kullanın - örneğin, bir klasörden taranan form yığınlarını işleme, mevcut arka uç hattınızla entegrasyon veya otomatik derecelendirme sistemleri oluşturma.
Kullanıcıların formları ayarlayabileceği, sonuçları inceleyebileceği ve QA yapabileceği görsel bir arayüze ihtiyacınız varsa - bunun yerine Iframe Entegrasyon API'si kullanın.
Kimlik Doğrulama
Kurumsal kullanımlar için API, bir Bearer Auth jetonu oluşturularak kullanılabilir.
FormRead pano paneline giriş yapın ve API Token seçeneğine erişin:
Üçüncü taraf hizmetlerin sizin adınıza uygulamamızla kimlik doğrulaması yapabilmesi için API jetonlarını oluşturun:
Form Görüntüsünü İşleme
İşlenmek üzere taranmış bir form görüntüsü gönderin. Formun, kontrol paneli veya iframe aracılığıyla okuma alanları (OMR, OCR, BCR) ile önceden ayarlanmış olması gerekir. API, görüntüyü işlemek için kayıtlı form yapılandırmasını kullanır.
Üstbilgiler
| Ad | Değer |
|---|---|
Authorization |
Bearer YOUR_API_TOKEN |
Accept |
application/json |
Content-Type |
application/json or multipart/form-data |
Dosya yükleme ile:
curl --location 'https://formread.org/api/forms/123/process' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--form 'image=@"/path/to/scanned-form.jpg"'
Görüntü URL'si ile:
curl --location 'https://formread.org/api/forms/123/process' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"image_url": "https://example.com/scanned-form.jpg"}'
Yanıt
{
"success": true,
"results": {
"OMR-0-0": "A",
"OMR-0-1": "C",
"OMR-0-2": "B,D",
"OCR-1": "John Smith",
"BCR-2": "1234567890"
},
"omr_details": {
"OMR-0": {
"questions": [
[
{"left": 0.12, "top": 0.22, "width": 0.02, "height": 0.02, "blackPixelsRatio": 0.72},
{"left": 0.15, "top": 0.22, "width": 0.02, "height": 0.02, "blackPixelsRatio": 0.15}
]
]
}
},
"anchor_error": false,
"processing_time_ms": 450
}
Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
success |
boolean | İşlemin başarıyla tamamlanıp tamamlanmadığı |
results |
object | Alan sonuçlarının anahtar-değer çiftleri. Anahtarlar alan adlarıdır (ör. OMR-0-0, OCR-1, BCR-2) |
omr_details |
object | OMR alanları için konumlar ve doluluk oranları dahil olmak üzere ayrıntılı baloncuk düzeyi verileri |
anchor_error |
boolean | Form sayfası hizalanamadıysa true (ör. köşeler algılanamadı) |
processing_time_ms |
integer | Milisaniye cinsinden işlem süresi |
Görüntü Giriş Seçenekleri
Görüntüyü üç şekilde sağlayabilirsiniz. Tam olarak birini kullanın:
| Parametre | Tür | Açıklama |
|---|---|---|
image |
file | Dosya yükleme (multipart/form-data) |
image_url |
string | Görüntüye genel URL |
image_base64 |
string | Base64 ile kodlanmış görüntü verisi |
Not
Form yapılandırması (okuma alanları, eşikler, dayanak noktaları) FormRead panosunda ayarladığınız formdan otomatik olarak yüklenir. İstekte herhangi bir yapılandırma göndermeniz gerekmez.
Toplu İşleme
Aynı formun birden çok görüntüsünü tek bir istekte işlemek için image_url alanında virgülle ayrılmış bir URL listesi iletin. Sonuçlar aynı sırada bir dizi olarak döndürülür.
İstek
curl --location 'https://formread.org/api/forms/123/process' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"image_url": "https://example.com/a.jpg,https://example.com/b.jpg,https://example.com/c.jpg"}'
Yanıt
{
"results": [
{
"id": "0",
"image_url": "https://example.com/a.jpg",
"success": true,
"results": { "OMR-0-0": "A", "OCR-1": "John Smith" },
"anchor_error": false,
"processing_time_ms": 430
},
{
"id": "1",
"image_url": "https://example.com/b.jpg",
"success": true,
"results": { "OMR-0-0": "B", "OCR-1": "Jane Doe" }
},
{
"id": "2",
"image_url": "https://example.com/c.jpg",
"success": false,
"error": "Failed to fetch image from URL: 404"
}
],
"total": 3
}
Toplu İşlem Parametreleri
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
image_url |
string | — | Bir veya daha fazla genel görüntü URL'si. Toplu işlem modu için virgülle ayrılmış. |
details |
boolean | false | Her toplu sonuçta omr_details (baloncuk başına konumlar ve doluluk oranları) dahil et. Yanıtları küçük tutmak için varsayılan olarak atlanır. |
Toplu işlem davranışı
- Toplu işlem modu yalnızca
image_urlile kullanılabilir. Dosya yüklemeleri veimage_base64yalnızca tek görüntü içindir. - Başarısız bir URL tüm toplu işlemi başarısız kılmaz — o öğe
"success": falseve birerroralanı alır; diğerleri devam eder. - Sonuçlar,
id(0 indeksli) aracılığıyla gönderilen sırayı korur. omr_detailstek görüntü modunda her zaman döndürülür; toplu işlem modunda"details": truegerektirir.
omr_details ile toplu işlem
curl --location 'https://formread.org/api/forms/123/process' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer YOUR_API_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"image_url": "https://example.com/a.jpg,https://example.com/b.jpg",
"details": true
}'
Sınırlar
| Sınır | Değer | Davranış |
|---|---|---|
| Dakikadaki istek sayısı | 60 |
API tokeni başına. Aşılması HTTP 429 döndürür. |
| İstek başına zaman aşımı | 60s |
60 saniyeyi aşan istekler hata ile sonlandırılır. |
Bir 429 yanıtı şöyle görünür:
{
"message": "Too Many Attempts."
}
Toplu bir istek, içerdiği URL sayısından bağımsız olarak bir çağrı olarak sayılır.
Toplu işlemleri boyutlandırma
- Toplu iş başına: örnek bir tek görüntü yanıtında
processing_time_msölçün, ardından 60 saniyeden kısa sürede rahatça bitecek bir toplu iş hazırlayın. - Toplu işler arasında: dakikada 60’ın altında kalacak şekilde istekleri hızlandırın.
- Görüntü boyutu: istemci tarafında hala doğru sonuçları verecek en küçük boyutlara küçültün. Bu, görüntü başına süre üzerindeki en büyük kaldıraçtır.
Desteklenen Alan Türleri
| Tür | Açıklama | Sonuç Formatı |
|---|---|---|
| OMR | Optik İşaret Tanıma - cevap kağıtlarındaki işaretli baloncukları algılar | "A", "B,C" |
| OCR | Optik Karakter Tanıma - basılı veya el yazısı metni çıkarır | "John Smith" |
| BCR | Barkod/QR Kod Tanıma - barkodları ve QR kodları okur | "1234567890" |
Kod Örnekleri
Bir form görüntüsünü işlemek için Python ve JavaScript ile tam örnekler:
Python
import requests
API_URL = "https://formread.org/api/forms/{form_id}/process"
TOKEN = "YOUR_API_TOKEN"
with open("scanned-form.jpg", "rb") as f:
response = requests.post(
API_URL.format(form_id=123),
headers={
"Accept": "application/json",
"Authorization": f"Bearer {TOKEN}",
},
files={"image": f},
)
data = response.json()
print(data["results"])
# {"OMR-0-0": "A", "OMR-0-1": "C", "OCR-1": "John Smith"}
Node.js
const FormData = require('form-data');
const fs = require('fs');
const axios = require('axios');
const form = new FormData();
form.append('image', fs.createReadStream('scanned-form.jpg'));
const response = await axios.post(
'https://formread.org/api/forms/123/process',
form,
{
headers: {
...form.getHeaders(),
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN',
},
}
);
console.log(response.data.results);
// { 'OMR-0-0': 'A', 'OMR-0-1': 'C', 'OCR-1': 'John Smith' }
Sıkça Sorulan Sorular
Sunucu Taraflı İşleme API'si ne yapar?
Taranmış bir form görüntüsünü tek bir HTTP POST ile gönderirsiniz ve JSON olarak yapılandırılmış OMR (baloncuk), OCR (metin) ve BCR (barkod/QR) sonuçları alırsınız - tarayıcı veya iframe gerekmez.
İstekleri nasıl doğrularım?
Kişisel erişim belirtecinizi Yetkilendirme başlığında Bearer belirteci olarak iletin: Authorization: Bearer YOUR_API_TOKEN. Belirteci FormRead panonuzun API Belirteçleri bölümünden oluşturun.
Tek bir istekte birden çok görüntü işleyebilir miyim?
Evet. image_url alanında virgülle ayrılmış genel görüntü URL'lerinin bir listesini iletin. Sonuçlar gönderim sırasına uygun bir dizi olarak döner ve başarısız bir URL yalnızca kendi öğesini başarısız kılar - diğerleri devam eder.
Hız ve boyut sınırları nelerdir?
API belirteci başına dakikada en fazla 60 istek, istek başına 60 saniyelik işlem zaman aşımı ile. Toplu bir istek, içerdiği URL sayısına bakılmaksızın tek bir çağrı olarak sayılır.
Her istekle birlikte form yapılandırmasını göndermem gerekiyor mu?
Hayır. Form yapılandırması - okuma alanları, eşikler, dayanak noktaları - FormRead panosunda ayarladığınız formdan otomatik olarak yüklenir. İsteğiniz yalnızca görüntüyü ve URL yolundaki form kimliğini içermelidir.