Static QR API: QR-კოდების შექმნა თქვენი ბექენდიდან

როგორ შევქმნათ API გასაღები WebQR-ში, ვიპოვოთ დოკუმენტაცია და მივიღოთ QR-კოდის SVG ერთი POST-მოთხოვნით — curl-ის რეალური მაგალითითა და ხშირი შეცდომებით.

WebQR-ის Static QR API საშუალებას აძლევს თქვენს ბექენდს, QR-კოდები წამიერად შექმნას: აგზავნით შიგთავსსა და დიზაინს — და იღებთ მზა SVG-ს. გიჩვენებთ, სად არის გასაღებები, როგორ შევქმნათ გასაღები და გავაგზავნოთ პირველი მოთხოვნა.

სად არის API

კაბინეტში გახსენით API-ის გვერდი — dash.webqr.io/api. აქედან ბმული API გასაღებები თქვენს გასაღებებზე გადაგიყვანთ, ბლოკში დოკუმენტაცია კი არის ღილაკები API დოკუმენტაცია და API კონსტრუქტორი — კონსტრუქტორში SVG-ის ნახვა კოდის დაწერამდეც შეიძლება.

API-ის გვერდი ბმულით API გასაღებები და ბლოკით დოკუმენტაცია

შექმენით გასაღები

გადადით API გასაღებები-ზე (dash.webqr.io/api/keys) და დააჭირეთ შექმნა.

ფანჯარაში ახალი გასაღები ჩაწერეთ გასაღების სახელი — მოკლე სახელი, რომელიც მხოლოდ თქვენს სიაში ჩანს — და დააჭირეთ შექმნა.

ფანჯარა ახალი გასაღები სახელით WebQR Blog Demo

სრული საიდუმლო მხოლოდ ერთხელ ჩანს, შექმნისთანავე — დააკოპირეთ და შეინახეთ უსაფრთხო ადგილას, მაგალითად სერვერის გარემოს ცვლადში. სიაში გასაღები შემდეგ დაფარული სახით ჩანს, პრეფიქსით, შექმნის თარიღითა და ველით ნებადართული IP.

გვერდი API გასაღებები გასაღებით WebQR Blog Demo: დაფარული გასაღები, პრეფიქსი, შექმნის თარიღი და ნებადართული IP

გახსენით დოკუმენტაცია

სრული ცნობარი არის webqr.io/api-documentation-ზე: ნაბიჯ-ნაბიჯ ინსტრუქცია, მოთხოვნისა და პასუხის ფორმატი, დიზაინის პარამეტრები და შეცდომები. იქვე შეგიძლიათ ჩამოტვირთოთ OpenAPI (YAML) სპეციფიკაცია და Postman-ის კოლექცია.

გვერდი Static QR API დოკუმენტაცია განყოფილებით Static QR API-ის დაკავშირება

შექმენით QR-კოდი

გაგზავნეთ POST https://api.webqr.io/v1/generate სათაურით X-API-Key და JSON-ტანით. ველში data (1000 სიმბოლომდე) არის კოდის შიგთავსი: ბმული, ტექსტი, Wi-Fi-ის მონაცემები და ა.შ. ობიექტი design არასავალდებულოა: ზომა, ფერები, მოდულებისა და თვალების ფორმა, ჩარჩო, ლოგო და სხვა. გამოიძახეთ API მხოლოდ თქვენი ბექენდიდან — არა ბრაუზერის კოდიდან ან მობილური აპიდან.

დოკუმენტაციის ნაბიჯი ენდპოინტით POST /v1/generate და curl-ის მაგალითით

აი, რეალური მოთხოვნა:

curl -X POST https://api.webqr.io/v1/generate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "data": "https://webqr.io",
    "design": {
        "size": 512,
        "color": "#000000",
        "backgroundColor": "#FFFFFF",
        "styleType": "a7k2m9",
        "eyeType": "r2s4t6",
        "showColorGradient": false
    }
}'

პასუხი მოდის JSON-ში. კოდის SVG-მარკაპი არის data.qr_code-ში: შეგიძლიათ შეინახოთ ფაილად ან ჩასვათ გვერდზე როგორც არის.

{
    "success": true,
    "data": {
        "qr_code": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\" width=\"512\" height=\"512\" ...>...</svg>",
        "format": "svg",
        "content": "https://webqr.io",
        "design": { "size": 512, "color": "#000000", ... }
    },
    ...
}

WebQR არ ინახავს API-ით შექმნილ კოდებს: ყოველი პასუხი დამოუკიდებელია.

შეამოწმეთ გამოყენება

GET /v1/usage აბრუნებს გამოყენების მრიცხველებს. მოთხოვნა მხოლოდ კითხულობს მონაცემებს და კოდებს არ ქმნის.

curl https://api.webqr.io/v1/usage \
  -H "X-API-Key: YOUR_API_KEY"

დამატებითი დაცვა

ყოველ გასაღებს აქვს ორი არასავალდებულო პარამეტრი:

  • ნებადართული IP-ების სია — გასაღები მუშაობს მხოლოდ მითითებული მისამართებიდან. ნაგულისხმევად ყველა დაშვებულია.
  • HMAC ხელმოწერა — ყოველ მოთხოვნას ახლავს სათაურები X-WebQR-Timestamp და X-WebQR-Signature HMAC-SHA256 ხელმოწერით, რომელიც თქვენი საიდუმლოთი გამოითვლება. ხელმოწერის ზუსტი სტრიქონი აღწერილია დოკუმენტაციაში.

ხშირი შეცდომები

  • 401 — გასაღები არ არის გადაცემული, არასწორია ან გაუქმებულია, ან ხელმოწერა არ ემთხვევა.
  • 403 — მოთხოვნა მოვიდა IP-დან, რომელიც ამ გასაღებისთვის დაშვებული არ არის.
  • 422 — მოთხოვნის ტანმა ვერ გაიარა შემოწმება, მაგალითად data ცარიელია ან ზედმეტად გრძელი. პასუხში ჩამოთვლილია პრობლემური ველები.
  • 429 — მოკლე დროში ზედმეტად ბევრი მოთხოვნა. დაელოდეთ Retry-After სათაურში მითითებულ დროს და გაიმეორეთ.

რჩევები

  • შექმენით ცალკე გასაღები ყოველი პროექტის ან სერვერისთვის — ასე ერთის გაუქმება უფრო მარტივია.
  • არ ატვირთოთ გასაღები რეპოზიტორიაში და არ ჩასვათ ფრონტენდში.
  • ჯერ შეარჩიეთ დიზაინი API კონსტრუქტორში, შემდეგ კი პარამეტრები გადაიტანეთ მოთხოვნაში.