Resmi SDK'lar
En çok talep edilen beş dil için REST API üzerine yazılmış, türlendirilmiş istemciler. Her biri taşıyıcı token kimlik doğrulaması, 429 ve 5xx yanıtlarında üstel geri çekilmeli yeniden deneme ve X-Abundera-Signature başlığının HMAC-SHA256 doğrulaması için verifyWebhookSignature yardımcısı ile gelir. MIT lisanslıdır.
- TypeScript@abundera/qr-pronpmGörüntüle →
- Pythonabundera-qr-proPyPIGörüntüle →
- Gogithub.com/abundera/qr-pro-goGo modulesGörüntüle →
- Rubyabundera-qr-proRubyGemsGörüntüle →
- PHPabundera/qr-proPackagistGörüntüle →
TypeScript / Node
@abundera/qr-proNode 18+. Sıfır çalışma zamanı bağımlılığı. ESM ve CJS derlemeleri.
Kur
npm install @abundera/qr-proKod oluştur
import { AbunderaQRProClient } from "@abundera/qr-pro";
const client = new AbunderaQRProClient({
apiKey: process.env.ABUNDERA_API_KEY!,
});
const code = await client.createCode({
destination_url: "https://example.com/launch",
label: "Bahar lansman afişi",
});
console.log(code.short_url);Webhook doğrula
import { verifyWebhookSignature } from "@abundera/qr-pro";
verifyWebhookSignature({
signature: req.headers["x-abundera-signature"],
body: rawBody,
secret: process.env.ABUNDERA_WEBHOOK_SECRET!,
});
// hatalı imza / kayma durumunda fırlatır, bu satırdan sonra gövdeyi ayrıştırmak güvenlidirPython
abundera-qr-proPython 3.9+. Tek bağımlılık (httpx). Senkron ve asenkron istemciler.
Kur
pip install abundera-qr-proKod oluştur
from abundera_qr_pro import Client
with Client(api_key="abnd_qrpro_...") as c:
code = c.create_code(
destination_url="https://example.com/launch",
label="Bahar lansman afişi",
)
print(code.short_url)Webhook doğrula
from abundera_qr_pro import verify_webhook_signature
from abundera_qr_pro.webhook import WebhookVerificationError
try:
verify_webhook_signature(
signature=request.headers["X-Abundera-Signature"],
body=request.body,
secret=os.environ["ABUNDERA_WEBHOOK_SECRET"],
)
except WebhookVerificationError:
return "", 400Go
github.com/abundera/qr-pro-goGo 1.21+. Yalnızca standart kütüphane. Baştan sona context farkındalıklı.
Kur
go get github.com/abundera/qr-pro-goKod oluştur
import qrpro "github.com/abundera/qr-pro-go"
c, _ := qrpro.New(os.Getenv("ABUNDERA_API_KEY"))
ctx := context.Background()
code, err := c.CreateCode(ctx, qrpro.CodeCreate{
DestinationURL: "https://example.com/launch",
Label: "Bahar lansman afişi",
})
if err != nil { log.Fatal(err) }
fmt.Println(code.ShortURL)Webhook doğrula
if err := qrpro.VerifyWebhookSignature(
r.Header.Get("X-Abundera-Signature"),
body,
os.Getenv("ABUNDERA_WEBHOOK_SECRET"),
0, // varsayılan 300 saniyelik tolerans
); err != nil {
http.Error(w, "hatalı imza", http.StatusBadRequest)
return
}Ruby
abundera-qr-proRuby 3.0+. Faraday üzerine kurulu. Rails başlatıcılarıyla uyumlu çalışır.
Kur
gem install abundera-qr-pro
# ya da Gemfile içinde
gem "abundera-qr-pro"Kod oluştur
require "abundera/qr_pro"
client = Abundera::QRPro::Client.new(api_key: ENV.fetch("ABUNDERA_API_KEY"))
code = client.create_code(
destination_url: "https://example.com/launch",
label: "Bahar lansman afişi",
)
puts code.short_urlWebhook doğrula
require "abundera/qr_pro/webhook"
begin
Abundera::QRPro::Webhook.verify!(
signature: request.headers["X-Abundera-Signature"],
body: request.raw_post,
secret: ENV.fetch("ABUNDERA_WEBHOOK_SECRET"),
)
rescue Abundera::QRPro::Webhook::InvalidSignature
head :bad_request
endPHP
abundera/qr-proPHP 8.1+. PSR-18 uyumlu herhangi bir HTTP istemcisiyle çalışır (varsayılan olarak Guzzle). Laravel ve Symfony servis sağlayıcıları aynı pakette gelir.
Kur
composer require abundera/qr-proKod oluştur
use Abundera\QrPro\Client;
= new Client(apiKey: getenv('ABUNDERA_API_KEY'));
= ->createCode(
destinationUrl: 'https://example.com/launch',
label: 'Bahar lansman afişi',
);
echo ->shortUrl;Webhook doğrula
use Abundera\QrPro\Webhook;
use Abundera\QrPro\WebhookException;
try {
Webhook::verify(
signature: $_SERVER['HTTP_X_ABUNDERA_SIGNATURE'] ?? '',
body: file_get_contents('php://input'),
secret: getenv('ABUNDERA_WEBHOOK_SECRET'),
);
} catch (WebhookException $e) {
http_response_code(400);
exit;
}Her SDK neyi kapsar
- Kodlarlistele, getir, oluştur, güncelle, sil, kısa ad kontrolü, içe aktar.
- Analitik
from/totarih filtreleriyle JSON ve CSV dışa aktarımı. - Gruplarlistele, oluştur, sil, kod ata.
- Webhook'larlistele, oluştur (gizli anahtarla), sil ve imza doğrulama yardımcısı.
- Kullanıcı
/me, hesap dışa aktarımı.
Admin, Stripe-webhook ve altyapı uç noktaları SDK'lar için kasıtlı olarak kapsam dışındadır; bunlar yalnızca servisten servise iletişim içindir. Tam uç nokta listesi OpenAPI 3.1 spesifikasyonunda yer almaktadır.
Postman koleksiyonu
Postman veya Insomnia'ya tek tıkla içe aktarın: /docs/postman.json (her dağıtımda OpenAPI spesifikasyonundan yeniden oluşturulur). Her istek, taşıyıcı token kimlik doğrulama başlığı şablonuyla önceden yapılandırılmıştır. API anahtarınızı koleksiyon düzeyinde bir kez ayarlayın, tüm uç noktalar devralır.
Ham OpenAPI tercih ediyor musunuz? Postman, OpenAPI 3.1'i yerel olarak destekler: Dosya → İçe Aktar → Bağlantı, ardından https://pro.qr.abundera.ai/docs/openapi.json adresini yapıştırın.
Sürüm politikası
SDK'lar SemVer'ı izler ve API'den bağımsız olarak sürümlendirilir. Bir SDK hata düzeltmesi (0.1.0 → 0.1.1) API sürümünü değiştirmez. Eklemeli bir API değişikliği (yeni uç nokta, yeni isteğe bağlı alan) SDK'da büyük sürüm artışını zorunlu kılmaz.
- SDK yama (
0.1.x) — hata düzeltme, belge, genel API değişikliği yok. Otomatik güncelleme için güvenli. - SDK küçük (
0.x.0) — yeni API uç noktalarını kapsayan yeni yöntemler veya kullanım kolaylığı eklemeleri. Geriye dönük uyumlu. - SDK büyük (
1.0.0 → 2.0.0) — yeniden adlandırma, kaldırma, tür biçimi değişikliği. Yalnızca API büyük sürüm aldığında veya küçük sürümde yayımlanamayan uzun süreli bir SDK kullanım hatası düzeltildiğinde.
API sürümlendirme. URL öneki büyük sürümdür. Bugün: /api/... (v1). Kırıcı bir değişiklik /api/v2/... olarak yayımlanır; v1 en az 12 ay boyunca aktif tutulur ve kullanımdan kaldırma penceresi boyunca Deprecation + Sunset yanıt başlıkları eklenir. "Kırıcı" tanımı /docs/changelog/ adresindedir.
Destek penceresi. Geçerli büyük sürümdeki en son küçük sürüm güvenlik düzeltmeleri alır. Eski büyük sürümler, ücretli Pro müşterileri için istek üzerine güvenlik yamaları alır.
Örnek uygulamalar
Kod oluşturma, hedef URL güncelleme, analitik okuma ve webhook imza doğrulamayı gösteren minimal çalışır uygulamalar:
- node-express — TypeScript + Express, tekrar oynatma korumalı webhook uç noktası.
- fastapi — Python 3.11 + FastAPI, imza doğrulama yardımcısı entegre.
- gin — Go 1.21 + Gin, deyimsel işleyici kalıbı.
- rails — Rails 7 + Sidekiq, webhook işleyicisi iş olarak.
- laravel — Laravel 11, imzalı rota webhook denetleyicisi.
Her örnek, sahte bir API'ye karşı CI ile test edilmektedir. Klonlayın, ABUNDERA_API_KEY ve ABUNDERA_WEBHOOK_SECRET değerlerini ayarlayın, çalıştırın.
Dilinizi görmüyor musunuz?
OpenAPI 3.1 spesifikasyonu kaynak belgedir. openapi-generator ile istediğiniz dilde bir istemci oluşturun veya kendiniz ince bir sarıcı yazın. API küçüktür (altı temel kaynak, taşıyıcı token kimlik doğrulaması). Kapsamadığımız bir dil için resmi SDK istiyorsanız support@abundera.ai adresine e-posta gönderin.