Viralliset SDK:t

Tyypitetyt asiakaskirjastot REST API:lle viidelle eniten pyydetylle kielelle. Jokainen sisältää bearer-token-todennuksen, eksponentiaalisen uudelleenyrityksen 429:lle ja 5xx:lle sekä verifyWebhookSignature-apurin HMAC-SHA256-vahvistukseen X-Abundera-Signature-otsakkeen osalta. MIT-lisensoitu.

Totuuden lähde: /docs/openapi.json · Ongelmat: support@abundera.ai

TS

TypeScript / Node

@abundera/qr-pro

Node 18+. Ei runtime-riippuvuuksia. ESM- ja CJS-buildit.

Asennus

npm install @abundera/qr-pro

Luo koodi

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);

Vahvista webhook

import { verifyWebhookSignature } from "@abundera/qr-pro";

verifyWebhookSignature({
  signature: req.headers["x-abundera-signature"],
  body: rawBody,
  secret: process.env.ABUNDERA_WEBHOOK_SECRET!,
});
// throws on bad signature / skew, safe to parse body after this line

Lähdekoodi GitHubissa →

Py

Python

abundera-qr-pro

Python 3.9+. Yksi riippuvuus (httpx). Synkroniset ja asynkroniset asiakaskirjastot.

Asennus

pip install abundera-qr-pro

Luo koodi

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)

Vahvista webhook

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

Lähdekoodi GitHubissa →

Go

Go

github.com/abundera/qr-pro-go

Go 1.21+. Pelkästään vakiokirjasto. Kontekstitietoinen läpi linjan.

Asennus

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

Luo koodi

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)

Vahvista webhook

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
}

Lähdekoodi GitHubissa →

Rb

Ruby

abundera-qr-pro

Ruby 3.0+. Rakennettu Faraday:lle. Toimii hyvin Rails-alustajien kanssa.

Asennus

gem install abundera-qr-pro
# or in Gemfile
gem "abundera-qr-pro"

Luo koodi

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_url

Vahvista webhook

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

Lähdekoodi GitHubissa →

PHP

PHP

abundera/qr-pro

PHP 8.1+. Toimii minkä tahansa PSR-18 HTTP -asiakkaan kanssa (Guzzle oletuksena). Laravel- ja Symfony-palveluntarjoajat toimitettavissa samassa paketissa.

Asennus

composer require abundera/qr-pro

Luo koodi

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;

Vahvista webhook

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

Lähdekoodi GitHubissa →

Mitä jokainen SDK kattaa

  • Koodit – listaus, haku, luonti, päivitys, poisto, slug-tarkistus, tuonti.
  • Analytiikka – JSON- ja CSV-viennit from/to-päivämääräsuodattimilla.
  • Ryhmät – listaus, luonti, poisto, koodien osoittaminen.
  • Webhookit – listaus, luonti (salaisuudella), poisto sekä allekirjoituksen vahvistusapuri.
  • Käyttäjä/me, tilin vienti.

Järjestelmänvalvojan, Stripe-webhookin ja infra-päätepisteet on tarkoituksella SDK:iden ulkopuolella, ne ovat vain palvelusta palveluun. Täydellinen päätepistelista on OpenAPI 3.1 -spesifikaatiossa.

Postman-kokoelma

Yhden klikkauksen tuonti Postmaniin tai Insomniaan: /docs/postman.json (uudelleengeneroitu OpenAPI-spesifikaatiosta jokaisessa käyttöönotossa). Jokainen pyyntö on esimääritetty bearer-token-todennusotsakemallin kanssa, aseta API-avaimesi kerran kokoelman tasolla ja jokainen päätepiste perii sen.

Preferoitko raakaa OpenAPI:ta? Postman tukee OpenAPI 3.1:tä natiivisti: File → Import → Link, sitten liitä https://pro.qr.abundera.ai/docs/openapi.json.

Versiointikäytäntö

SDK:t noudattavat SemVeriä ja ne versioidaan itsenäisesti rajapinnasta. SDK-virheenkorjaus (0.1.0 → 0.1.1) ei muuta rajapinnan versiota. Lisäävä rajapintamuutos (uusi päätepiste, uusi valinnainen kenttä) ei pakota SDK:n pääversiomuutosta.

  • SDK patch (0.1.x) — virheenkorjaus, dokumentaatio, ei julkisen rajapinnan muutosta. Turvallista automaattisesti päivittää.
  • SDK minor (0.x.0) — uusia metodeita kattamaan uusia rajapintapäätepisteitä tai ergonomisia lisäyksiä. Taaksepäin yhteensopiva.
  • SDK major (1.0.0 → 2.0.0) — uudelleennimeäminen, poistaminen, tyypin muotomuutos. Vain kun rajapinta majoroituu tai korjataan pitkäaikainen SDK-ergonomiavika, jota ei voi toimittaa minorissa.

Rajapinnan versiointi. URL-etuliite on pääversio. Tänään: /api/... (v1). Murtava muutos toimitetaan muodossa /api/v2/..., v1 pidetään elossa vähintään 12 kuukautta ja Deprecation + Sunset -vastausotsakkeet koko poistoikkunan ajan. Täydellinen "murtavan" määritelmä osoitteessa /docs/changelog/.

Tukiikkuna. Nykyisen pääversion uusin minor saa tietoturvakorjauksia. Vanhemmat pääversiot saavat tietoturvakorjauksia pyynnöstä maksaville Pro-asiakkaille.

Esimerkkisovellukset

Minimaaliset ajettavat sovellukset, jotka näyttävät koodin luomisen, kohteen päivityksen, analytiikan lukemisen ja webhookin allekirjoituksen vahvistuksen:

  • node-express — TypeScript + Express, webhook-päätepiste toistosuojauksella.
  • fastapi — Python 3.11 + FastAPI, allekirjoituksen vahvistusapuri liitettynä.
  • gin — Go 1.21 + Gin, idiomimainen käsittelijäkuvio.
  • rails — Rails 7 + Sidekiq, webhook-käsittelijä työnä.
  • laravel — Laravel 11, allekirjoitetun reitin webhook-ohjain.

Jokainen esimerkki on CI-testattu mock-rajapintaa vasten. Kloonaa, aseta ABUNDERA_API_KEY ja ABUNDERA_WEBHOOK_SECRET, aja.

Eikö kielesi ole listassa?

OpenAPI 3.1 -spesifikaatio on totuuden lähde. Generoi asiakas millä tahansa kielellä openapi-generator:lla tai kirjoita ohut käärinyys itse — rajapinta on pieni (kuusi ydinresurssia, bearer-token-todennus). Jos haluat virallisen SDK:n kielelle, jota emme kata, lähetä sähköpostia support@abundera.ai.