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.

Kaynak: /docs/openapi.json · Sorunlar: support@abundera.ai

TS

TypeScript / Node

@abundera/qr-pro

Node 18+. Sıfır çalışma zamanı bağımlılığı. ESM ve CJS derlemeleri.

Kur

npm install @abundera/qr-pro

Kod 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üvenlidir

GitHub kaynağı →

Py

Python

abundera-qr-pro

Python 3.9+. Tek bağımlılık (httpx). Senkron ve asenkron istemciler.

Kur

pip install abundera-qr-pro

Kod 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 "", 400

GitHub kaynağı →

Go

Go

github.com/abundera/qr-pro-go

Go 1.21+. Yalnızca standart kütüphane. Baştan sona context farkındalıklı.

Kur

go get github.com/abundera/qr-pro-go

Kod 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
}

GitHub kaynağı →

Rb

Ruby

abundera-qr-pro

Ruby 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_url

Webhook 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
end

GitHub kaynağı →

PHP

PHP

abundera/qr-pro

PHP 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-pro

Kod 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;
}

GitHub kaynağı →

Her SDK neyi kapsar

  • Kodlarlistele, getir, oluştur, güncelle, sil, kısa ad kontrolü, içe aktar.
  • Analitikfrom/to tarih 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.