سرکاری SDKs
پانچ سب سے زیادہ مانگی گئی زبانوں کے لیے REST API پر Typed clients۔ ہر ایک bearer-token auth، 429 اور 5xx پر exponential-backoff retry، اور X-Abundera-Signature header کی HMAC-SHA256 verification کے لیے verifyWebhookSignature helper کے ساتھ آتا ہے۔ MIT-licensed۔
- TypeScript@abundera/qr-pronpmدیکھیں →
- Pythonabundera-qr-proPyPIدیکھیں →
- Gogithub.com/abundera/qr-pro-goGo modulesدیکھیں →
- Rubyabundera-qr-proRubyGemsدیکھیں →
- PHPabundera/qr-proPackagistدیکھیں →
TypeScript / Node
@abundera/qr-proNode 18+۔ Zero runtime dependencies۔ ESM اور CJS builds۔
Install کریں
npm install @abundera/qr-proایک code بنائیں
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: "Spring launch poster",
});
console.log(code.short_url);Webhook verify کریں
import { verifyWebhookSignature } from "@abundera/qr-pro";
verifyWebhookSignature({
signature: req.headers["x-abundera-signature"],
body: rawBody,
secret: process.env.ABUNDERA_WEBHOOK_SECRET!,
});
// bad signature / skew پر throws, اس line کے بعد body parse کرنا safe ہےPython
abundera-qr-proPython 3.9+۔ Single dependency (httpx)۔ Sync اور async clients۔
Install کریں
pip install abundera-qr-proایک code بنائیں
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="Spring launch poster",
)
print(code.short_url)Webhook verify کریں
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+۔ صرف Standard library۔ پوری طرح Context-aware۔
Install کریں
go get github.com/abundera/qr-pro-goایک code بنائیں
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: "Spring launch poster",
})
if err != nil { log.Fatal(err) }
fmt.Println(code.ShortURL)Webhook verify کریں
if err := qrpro.VerifyWebhookSignature(
r.Header.Get("X-Abundera-Signature"),
body,
os.Getenv("ABUNDERA_WEBHOOK_SECRET"),
0, // default 300s tolerance
); err != nil {
http.Error(w, "bad signature", http.StatusBadRequest)
return
}Ruby
abundera-qr-proRuby 3.0+۔ Faraday پر built۔ Rails initialisers کے ساتھ اچھا چلتا ہے۔
Install کریں
gem install abundera-qr-pro
# یا Gemfile میں
gem "abundera-qr-pro"ایک code بنائیں
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: "Spring launch poster",
)
puts code.short_urlWebhook verify کریں
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 HTTP client کے ساتھ کام کرتا ہے (Guzzle by default)۔ Laravel اور Symfony service providers اسی package میں ship ہوتے ہیں۔
Install کریں
composer require abundera/qr-proایک code بنائیں
use Abundera\QrPro\Client;
$client = new Client(apiKey: getenv('ABUNDERA_API_KEY'));
$code = $client->createCode(
destinationUrl: 'https://example.com/launch',
label: 'Spring launch poster',
);
echo $code->shortUrl;Webhook verify کریں
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;
}ہر SDK کیا cover کرتا ہے
- Codeslist، get، create، update، delete، slug check، import۔
- Analytics
from/todate filters کے ساتھ JSON اور CSV exports۔ - Groupslist، create، delete، codes assign کریں۔
- Webhookslist، create (secret کے ساتھ)، delete، plus signature-verify helper۔
- User
/me، account export۔
Admin، Stripe-webhook، اور infra endpoints جان بوجھ کر SDKs کے دائرے سے باہر ہیں — یہ صرف service-to-service ہیں۔ مکمل endpoint list OpenAPI 3.1 spec میں ہے۔
Postman collection
Postman یا Insomnia میں one-click import: /docs/postman.json (ہر deploy پر OpenAPI spec سے regenerated)۔ ہر request bearer-token auth header template کے ساتھ pre-configured ہے — اپنی API key ایک بار collection level پر set کریں اور ہر endpoint اسے inherit کرتا ہے۔
خام OpenAPI پسند ہے؟ Postman OpenAPI 3.1 کو natively support کرتا ہے: File → Import → Link، پھر https://pro.qr.abundera.ai/docs/openapi.json paste کریں۔
Versioning policy
SDKs SemVer follow کرتے ہیں اور API سے آزادانہ versioned ہیں۔ SDK bugfix (0.1.0 → 0.1.1) API version نہیں بدلتا۔ Additive API change (نئی endpoint، نئی optional field) SDK major bump force نہیں کرتا۔
- SDK patch (
0.1.x) — bugfix، docs، کوئی public-API تبدیلی نہیں۔ Auto-update کے لیے محفوظ۔ - SDK minor (
0.x.0) — نئے API endpoints cover کرنے کے لیے نئے methods، یا ergonomic additions۔ Backwards compatible۔ - SDK major (
1.0.0 → 2.0.0) — rename، removal، type-shape change۔ صرف جب API major ہو، یا جب کسی long-standing SDK ergonomic bug کو ٹھیک کیا جائے جو minor میں ship نہ ہو سکے۔
API versioning۔ URL prefix major version ہے۔ آج: /api/... (v1)۔ Breaking change /api/v2/... کے طور پر ship ہوتی ہے، v1 کم از کم 12 ماہ alive رہتا ہے اور deprecation ونڈو میں Deprecation + Sunset response headers کے ساتھ۔ "Breaking" کی مکمل تعریف /docs/changelog/ پر۔
Support window۔ موجودہ major پر latest minor کو security fixes ملتے ہیں۔ پرانے majors کو paying Pro customers کی درخواست پر security patches ملتے ہیں۔
مثال apps
Code creation، destination update، analytics read، اور webhook signature verification دکھانے والے minimal runnable apps:
- node-express — TypeScript + Express، replay protection کے ساتھ webhook endpoint۔
- fastapi — Python 3.11 + FastAPI، signature verification helper wired in۔
- gin — Go 1.21 + Gin، idiomatic handler pattern۔
- rails — Rails 7 + Sidekiq، webhook handler as a job۔
- laravel — Laravel 11، signed-route webhook controller۔
ہر مثال mocked API کے خلاف CI-tested ہے۔ Clone کریں، ABUNDERA_API_KEY اور ABUNDERA_WEBHOOK_SECRET set کریں، run کریں۔
اپنی زبان نہیں دیکھ رہے؟
OpenAPI 3.1 spec سچائی کا ذریعہ ہے۔ openapi-generator سے کسی بھی زبان میں client generate کریں، یا خود ایک thin wrapper لکھیں — API چھوٹی ہے (چھ core resources، bearer-token auth)۔ اگر آپ کسی ایسی زبان کے لیے سرکاری SDK چاہتے ہیں جو ہم cover نہیں کرتے، support@abundera.ai کو email کریں۔