ARENDAJAD · Integration API dokumentatsioon

Fabrixa Integration API dokumentatsioon

6 min lugemist Viimati uuendatud: 22-09-2026 21:12

Integration API abil saad luua ja hallata Fabrixa tellimusi, avada Fabrixa Studio ning püsida veebihookide kaudu kursis tootmise ja täitmise olekuga. API järgib REST-i tavasid ning kasutab kõigis päringu- ja vastusekehades JSON-i.

BAAS-URL

https://api.fabrixa.com/v2/integration

Saada kõik päringud sellele baas-URL-ile, millele järgneb konkreetse lõpp-punkti tee. Baas-URL on Fabrixa API-ga suhtlemise alus - ressursside pärimiseks, loomiseks, uuendamiseks või kustutamiseks.

ENNE ESIMEST PÄRINGUT

Autentimine

Integration API-le ligipääsuks autendi oma päringud nii rakenduse ligipääsuvõtme (access token) kui ka rakenduse võtmega:

Authorization-päis
Authorization: Bearer APPLICATION_ACCESS_TOKEN
Rakenduse võtme päis
X-Application-Key: APPLICATION_KEY
cURL-käsu näidis
curl -X 'GET' \
  'https://api.fabrixa.com/v2/integration/ping' \
  -H 'Accept: application/json' \
  -H 'Authorization: Bearer APPLICATION_ACCESS_TOKEN' \
  -H 'X-Application-Key: APPLICATION_KEY'

Asenda APPLICATION_ACCESS_TOKEN oma tegeliku ligipääsuvõtmega ja APPLICATION_KEY oma tegeliku rakenduse võtmega.

KUIDAS VASTUSED ON ÜLES EHITATUD

Lõpp-punktid ja päringud

Integration API lõpp-punktid on korraldatud ressursitüübi järgi ja järgivad REST-arhitektuuri stiili. Iga lõpp-punkt esindab ressurssi ning toiminguid nende ressurssidega tehakse tavapäraste HTTP-meetoditega.

Kõik Integration API päringud ja vastused on JSON-vormingus, mis annab API-ga suhtlemiseks ühtse ja hõlpsasti kasutatava liidese.

Iga lõpp-punkti täielikud üksikasjad koos päringu- ja vastusenäidetega leiad meie Swaggeri dokumentatsioonist.

Vastuse vorming

Kõik lõpp-punktid tagastavad andmed ühtses vormingus järgmiste objektidega:

{
  "links": {
    "self": "https://api.fabrixa.com/v2/integration/products",
    "first_page": "https://api.fabrixa.com/v2/integration/products?page=1",
    "last_page": "https://api.fabrixa.com/v2/integration/products?page=2",
    "next_page": "https://api.fabrixa.com/v2/integration/products?page=2",
    "prev_page": null
  },
  "meta": {
    "total": 2,
    "current_page": 1,
    "per_page": 10
  },
  "data": [
    {
      "id": 1,
      "name": "Product 1",
      "description": "Description of Product 1"
    },
    {
      "id": 2,
      "name": "Product 2",
      "description": "Description of Product 2"
    }
  ]
}

Vastuse objektide kirjeldus

links

Sisaldab lehitsemislinke, millega tulemuste vahel liikuda.

  • self — praeguse lehe URL.
  • first_page — tulemuste esimese lehe URL.
  • last_page — tulemuste viimase lehe URL.
  • next_page — järgmise lehe URL. null, kui järgmist lehte ei ole.
  • prev_page — eelmise lehe URL. null, kui eelmist lehte ei ole.

meta

Sisaldab vastuse metaandmeid, näiteks lehitsemisteavet.

  • total — kõigil lehtedel saadaolevate üksuste koguarv.
  • current_page — tulemuste praeguse lehe number.
  • per_page — üksuste arv lehel.

data

Vastuse põhisisu. data erineb lõpp-punkti kaupa - see võib olla üksik objekt, näiteks üks toode, või objektide massiiv, näiteks toodete loend.

KUI MIDAGI LÄHEB VALESTI

Vead ja olekukoodid

Kõik API päringud tagastavad HTTP olekukoodid, mis annavad vastuse kohta selgust.

400 Bad Request

Server ei saa päringut töödelda valideerimisvigade tõttu - puuduvate või vigaste parameetrite pärast.

401 Unauthorized

Klient ei ole esitanud kehtivaid autentimisandmeid. Tagastatakse ka siis, kui ligipääsuvõti on tühistatud.

403 Forbidden

Server keeldus päringust ebapiisavate õiguste tõttu, tavaliselt valede või puuduvate ligipääsuõiguste pärast.

404 Not Found

Soovitud ressurssi ei leitud serverist.

429 Too Many Requests

Klient on ületanud lubatud päringute arvu antud ajavahemikus. Vaata Päringupiirangud.

5xx Errors

Tekkis serveri sisemine viga. Palun võta ühendust Fabrixa toega ja lisa ebaõnnestunud päringu üksikasjad.

Veavastuse keha

Veavastuse keha näidis:

{
    "links": {
        "self": "https://api.fabrixa.com/v2/integration/ping"
    },
    "meta": [],
    "errors": {
        "messages": [
            "Application Key is not specified."
        ]
    }
}

errors sisaldab üksikasju selle kohta, mis ebaõnnestus. Massiiv messages loetleb vigade kirjeldused. Bad Requesti korral saad nende väljade nimed, mis valideerimise läbi ei teinud.

TUNNE OMA PÄRINGUPIIRANGUID

Päringupiirangud

Integration API toetab piirangut 30 päringut rakenduse kohta minutis.

Selle piirangu ületamisel saad vastuse 429 Too Many Requests.

Kõik Integration API vastused sisaldavad päist X-RateLimit-Remaining, mis näitab, mitu päringut klient veel teha saab, ning päist X-RateLimit-Limit, mis näitab minutis lubatud koguarvu.

TELLIMUSTE LOOMINE JA JÄLGIMINE

Tellimused

Loo Fabrixas tellimusi oma poest või platvormilt, lisa nõutud trükifailid ja jälgi iga üksust, kui see läbib täitmise etapid.

VALMISTA ETTE TELLIMUSE ANDMED

Tellimuse loomine

Tellimuse loomiseks Fabrixa Integration API kaudu saada POST-päring aadressile https://api.fabrixa.com/v2/integration/orders. Päringu keha peab sisaldama:

Päringu keha struktuur

  • number (valikuline) - tellimuse number. Kui seda ei esitata, luuakse unikaalne number.
  • comments (valikuline) - tellimusega seotud lisakommentaarid või märkused.
  • purchased_at - tellimuse ostmise kuupäev ja kellaaeg vormingus YYYY-MM-DD HH:MM:SS.
  • client_ip (valikuline) - kliendi IP-aadress.
  • client_user_agent (valikuline) - kliendi user-agent sõne.
  • rows - tellimuse üksuste massiiv, iga üksus sisaldab:
    • sku - toote variandi SKU. Üksikasjad leiad Swaggerist.
    • quantity - tellitud toote variandi kogus.
    • client_barcode (valikuline) - unikaalne kliendipoolne tunnus tellimuse rea kohta vormingus Code 128.
    • cart_item_key (nõutav, kui sources puudub) - unikaalne tunnus platvormilt, mis manustab Fabrixa Studio, ja mille abil seotakse salvestatud kohandused tellimusega.
    • sources (nõutav, kui cart_item_key puudub) - tootega seotud lähtefailide massiiv, iga fail sisaldab:
      • type - toote tüüp, vaikimisi kasuta "file".
      • url - lähtefaili URL.
  • customer - kliendi andmed:
    • first_name, last_name, email, phone.
  • shipping_address - tarneandmed:
    • address, address2 (valikuline), address3 (valikuline).
    • city, country_code (ISO 3166-2), country, postal_code, state (valikuline).
    • first_name, last_name, phone (valikuline), company (valikuline).
  • shipping_label (valikuline) - sildi andmed:
    • method_name - nt "Post NL".
    • tracking_number, tracking_url, label_pdf_url.
    • date_created - vormingus YYYY-MM-DD HH:MM:SS.

Päringu näidis

{
  "number": "NL2024010201",
  "comments": "Customer agrees with a low resolution file.",
  "purchased_at": "2024-06-26 21:12:22",
  "client_ip": "127.0.0.1",
  "client_user_agent": "Mozilla",
  "rows": [
    {
      "variant_id": 2705,
      "quantity": 1,
      "client_barcode": "1234567890",
      "sources": [
        {
          "type": "file",
          "url": "https://samples-files.com/samples/sample.pdf"
        }
      ]
    }
  ],
  "customer": {
    "first_name": "John",
    "last_name": "Doe",
    "email": "3VJtP@example.com",
    "phone": "0647185332"
  },
  "shipping_address": {
    "address": "Pierre cuypershof",
    "address2": "17",
    "city": "Amsterdam",
    "country_code": "NL",
    "country": "Netherlands",
    "postal_code": "1012 AB",
    "state": "North Holland",
    "first_name": "John",
    "last_name": "Doe",
    "phone": "0647185332"
  },
  "shipping_label": {
    "method_name": "Post NL",
    "tracking_number": "3SYZXG1585577",
    "tracking_url": "https://postnl.nl/tracktrace/3SYZXG1585577",
    "label_pdf_url": "https://api.fabrixa.com/storage/8966630826422f36d822f91680012141.pdf",
    "date_created": "2024-01-01 00:00:00"
  }
}
JÄLGI OMA TELLIMUSE ÜKSUSI

Täitmise jälgimine

Konkreetse tellimuse täitmise oleku saamiseks saada GET-päring aadressile https://api.fabrixa.com/v2/integration/orders/{order_id}/fulfillments. Vastus annab tellimusega seotud täitmiste loendi koos iga üksuse olekuga, tooteandmetega ja tootmisetappide edenemisega.

Vastuse näidis

{
    "data": [
        {
            "id": 1499,
            "barcode": "1200004169200",
            "status": "unfulfilled",
            "created_at": "2024-08-19T12:38:59.000000Z",
            "updated_at": "2024-08-19T12:39:00.000000Z",
            "variant": {
                "id": 32327,
                "name": "Test iAPI blanket product",
                "subtitle": "100 x 150 cm",
                "SKU": "COF099191"
            },
            "product": {
                "id": 1306,
                "name": "Test iAPI blanket product",
                "subtitle": "Test iAPI blanket product"
            },
            "production_steps": [
                {
                    "id": 5,
                    "name": "Print duvet",
                    "description": "Printing the duvet according to the specified design and dimensions.",
                    "status": {
                        "value": "pending",
                        "notes": null,
                        "updated_at": null
                    }
                },
                {
                    "id": 6,
                    "name": "Print pillow",
                    "description": "Printing the pillow cover with the assigned design.",
                    "status": {
                        "value": "pending",
                        "notes": null,
                        "updated_at": null
                    }
                }
            ]
        }
    ]
}

Vastus sisaldab täitmiste loendit, kus iga kirje annab:

  • id - täitmise unikaalne tunnus.
  • barcode - triipkood sisemiseks jälgimiseks ja tuvastamiseks; selle võib trükkida ka tootele.
  • status - praegune täitmise olek: unfulfilled või fulfilled.
  • created_at ja updated_at - täitmise loomise ja viimase uuendamise ajatemplid.
  • variant - üksikasjalik teave toote variandi kohta: nimi, alapealkiri, SKU.
  • product - tooteandmed: nimi, alapealkiri.
  • production_steps - tootmisetappide massiiv. Etappide loend sõltub tootetüübist. Iga etapi kohta:
    • id - tootmisetapi unikaalne tunnus.
    • name - nt "Tekikoti trükk".
    • description - mida tootmisetapp hõlmab.
    • status - praegune olek:
      • pending - pole veel alanud.
      • in progress - praegu käimas.
      • rejected - etapis tekkis tõrge ja seda ei viidud edukalt lõpuni.
      • done - etapp on lõpetatud.
    • notes - etapiga seotud lisamärkused.
    • updated_at - millal etapi olekut viimati uuendati.

Iga täitmiskirje vastab tellimuse konkreetsele tootele või toote variandile ning igal tellimuses oleval tooteeksemplaril on oma täitmiskirje - iga üksust jälgitakse kogu tootmise vältel eraldi.

Kui tellimuse kohta täitmisi ei tagastata, ei ole tellimus veel töötlemisetappi jõudnud.

KUIDAS ESITADA TRÜKIFAILE

Lähtefailide nõuded

Kui lisad tellimusele lähtefaile, veendu, et need vastaksid järgmistele nõuetele:

type

Lähtefailina tuleb esitada PDF-fail. Kui sinu kujundusel on mitu tootekihti, lisa iga kiht sama PDF-i eraldi leheküljena. Töötlemise ajal käsitletakse iga lehekülge eraldi kihina, nii saad mitmekihilise kujunduse esitada ühe lähtefailina. Vaata PDF-i nõudeid ja lehekülgede järjekorda.

Source-objekti type peab olema "file".

"sources": [
    {
        "type": "file",
        "url": "https://samples-files.com/samples/source.pdf"
    }
]

Täpsemat teavet leiad Swaggeri dokumentatsioonist.

url

Väli url peab sisaldama otselinki lähtefailile. Veendu, et URL oleks ligipääsetav ja faili saaks alla laadida ilma autentimiseta. Link peab jääma kättesaadavaks kogu tootmisprotsessi vältel.

Failivorming

Esita failid PDF-vormingus. Veendu, et pildid oleksid kvaliteetsed ja trükiks sobivad.

Pildi mõõtmed

Maksimaalsed mõõtmed on 15 000 pikslit mõlemas suunas. Selle piiri ületavaid pilte võib vähendada või tagasi lükata. Pildi resolutsioon peaks vastama toote mõõtmetele; muidu võib pilte mahutamiseks vähendada või kärpida.

Resolutsioon

Kindlat resolutsiooninõuet ei ole - veendu vaid, et pildikvaliteet oleks trükiks piisav.

Värviruum

Pildid peaksid olema RGB-värviruumis, et värvid oleksid täpsed. Teised värviruumid teisendatakse töötlemise ajal, mis võib anda valed värvid.

Faili suurus

Ükski lähtefail ei tohiks ületada 50 MB. Suuremaid faile võidakse tagasi lükata või need põhjustavad töötlemise viivitusi.

PDF-i nõuded ja lehekülgede järjekord

Lehekülgede järjekord PDF-is on oluline. Leheküljed seotakse tootekihtidega asukoha järgi ja oodatav lehekülgede järjekord sõltub tootetüübist. Veendu, et sinu PDF-i leheküljed järgiksid esitatava toote õiget kihijärjestust.

ToodePDF-lehekülgede järjekord
Duvet Cover
  1. Duvet cover
  2. Pillow front
  3. Pillow back
Curtains
  1. Left curtain
  2. Right curtain
T-shirt
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Collar
Tanktop
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Collar
Sweater
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Left cuff
  6. Right cuff
  7. Collar
  8. Waistband
Hoodie
  1. Front
  2. Back
  3. Left sleeve
  4. Right sleeve
  5. Left cuff
  6. Right cuff
  7. Hood inside left
  8. Hood inside right
  9. Hood outside left
  10. Hood outside right
  11. Waistband
  12. Pocket lower left
  13. Pocket lower right
  14. Pocket upper right
  15. Pocket upper left
Sweatpants
  1. Front right
  2. Front left
  3. Back left
  4. Back right
  5. Left cuff
  6. Right cuff
  7. Waistband
  8. Right pocket
  9. Left pocket
  10. Back pocket
  11. Back pocket interfacing
Sweatshorts
  1. Front right
  2. Front left
  3. Back left
  4. Back right
  5. Waistband
  6. Right pocket
  7. Left pocket

Oluline: iga PDF-lehekülg peab vastama oma tootekihi nõutud mõõtmetele ja olema õigesti suunatud. Paiguta kujundus nii, et selle ülaosa jääks lehekülje ülaossa. Vale leheküljesuurus või -suund võib tootmises põhjustada mastaapimise, pööramise või joondamise probleeme.

TOOTE KOHANDAMINE

Fabrixa Studio

Fabrixa Studio on tööriist, mis laseb kasutajatel tooteid reaalajas sujuvalt kohandada ja isikupärastada intuitiivses liideses, kus nad saavad oma kujundusi luua või üles laadida.

Fabrixa Studio sobib ideaalselt ettevõtetele, kes pakuvad eritellimustooteid - kliendid näevad oma kujundust juba enne tellimuse vormistamist.

LISA STUDIO OMA POODI

Fabrixa Studio manustamine

Fabrixa Studio saad oma veebisaidile manustada iframe-i abil. Nii saavad kliendid tooteid ostu ajal otse sinu saidil isikupärastada.

Fabrixa Studio manustamise iframe-i näidis:

<iframe id="fabrixa-studio"
    src="https://studio.fabrixa.com?application_key={application_key}&sku={product_sku}&cart_item_key={cart_item_key}"
    name="FabrixaStudio"
    scrolling="no"
    frameborder="1"
    width="100%"
    height="100%"
    allowfullscreen="">
</iframe>

Asenda väärtused product_sku, cart_item_key ja application_key oma dünaamiliste väärtustega.

Päring tellimuse loomiseks väljaga cart_item_key

{
  "number": "NL2024010201",
  "purchased_at": "2024-06-26 21:12:22",
  "client_ip": "127.0.0.1",
  "client_user_agent": "Mozilla",
  "rows": [
    {
      "sku": "SB796162",
      "quantity": 1,
      "cart_item_key": "0cb76770-de2d-4524-aa48-47b6e5f0d8a5"
    }
  ],
  "customer": {
    "...": "..."
  },
  "shipping_address": {
    "...": "..."
  },
  "shipping_label": {
    "...": "..."
  }
}
KUULA KLIENDI TEGEVUSI

Studio sündmuste käsitlemine

Kui iframe-i sees klõpsatakse nuppu Lisa ostukorvi, käivitatakse järgmine käsk:

window.parent.postMessage('customizationFinished', '*');

Sarnaselt siis, kui klõpsatakse nuppu Tagasi:

window.parent.postMessage('closeButtonClicked', '*');

Meetod postMessage võimaldab iframe-i ja selle vanemakna vahelist eri päritolu suhtlust, nii saab see vanemakent konkreetsetest kasutaja tegevustest teavitada.

Meetodi postMessage esimene argument on andmed, mida soovid saata. Sõne 'customizationFinished' tähendab, et kasutaja on kohandamise lõpetanud ja lisab toote ostukorvi. 'closeButtonClicked' tähendab, et kasutaja valis tagasi mineku.

Vanemaknas kuula neid sõnumeid message-sündmuse kuulajaga:

window.addEventListener('message', function(event) {
    if (event.origin === 'https://studio.fabrixa.com') {
        if (event.data === 'customizationFinished') {
            // Handle the Add to Cart event
            console.log('Customization finished and item can be added to cart.');
        } else if (event.data === 'closeButtonClicked') {
            // Handle the Back button event
            console.log('Back button clicked.');
        }
    }
});

Kontrolli alati sissetulevate sõnumite origin-i, et need tuleksid usaldusväärsest allikast. Sõltuvalt saadud sõnumist tee vajalikud toimingud - uuenda kasutajaliidest, töötle ostukorvi ja nii edasi. origin-i valideerimine on turvalisuse jaoks hädavajalik - see takistab volitamata skriptidel sinu rakendusega suhelda.

KUVA VALMIS KUJUNDUS

Kohanduse eelvaade

Kui kohandamine on lõpetatud, kuva lõplik kujundus allpool oleva eelvaate URL-iga. See URL tagastab kohandatud toote pildi, mis sobib src-väärtuseks <img>-sildis. Ideaalne kohandatud toote näitamiseks ostukorvis, tellimuse kokkuvõttes või mujal sinu poe liideses.

https://api.fabrixa.com/v2/studio/customizations/{CART_ITEM_KEY}/preview?Application-Key={APPLICATION_KEY}

Asenda {CART_ITEM_KEY} tegeliku ostukorvi üksuse võtmega ja {APPLICATION_KEY} oma kehtiva rakenduse võtmega.

Kasutusnäidis pildisildis:

<img
    src="https://api.fabrixa.com/v2/studio/customizations/{CART_ITEM_KEY}/preview?Application-Key={APPLICATION_KEY}"
    alt="Customized Product Preview"
    style="max-width: 100%; height: auto;" />
PROOVI OMA VÄÄRTUSTEGA

Live-demo

Kohanduse eelvaade ilmub siia pärast kujunduse valmimist.

Customization preview
VÕTA VASTU SÜNDMUSTE UUENDUSI

Veebihookid

Fabrixa kasutab veebihooke, et teavitada sinu süsteemi reaalajas toimuvatest sündmustest - tellimuste uuendustest või loomisest. Kui sündmus toimub, saadab Fabrixa sinu serverisse veebihooki koos asjakohase teabega. Sinu server peab avama avaliku POST-lõpp-punkti, mis sissetulevaid veebihooke käsitleb.

VAATA ÜLE SISSETULEVAD PÄISED

Veebihooki päringu päised

Veebihooki päring sisaldab järgmisi päiseid, mis aitavad sul sissetuleva päringu tuvastada ja kontrollida:

{
  "content-type": "application/json",
  "x-webhook-signature": "YmEwNjBhMGMyMzE3ZWQ5NGQ5NDYwOGVhNzNhMjQ4M2MyODZkZmI3NTQ1YzYxYjdkMzNhZjgzYzBmMTkxYTAxMw==",
  "x-webhook-topic": "order.updated"
}
Päiste ülevaade
VALI OMA SÜNDMUSTE TEEMAD

Veebihooki sündmused

Fabrixa veebihookid teavitavad sinu süsteemi tellimuse oleku või tegevuse muutustest. Iga veebihooki käivitab kindel x-webhook-topic väärtus. Praegu toetatud teemad:

TeemaKirjeldus
order.created Käivitub, kui Fabrixas esitatakse uus tellimus, kas API päringu kaudu või otse platvormil.
order.updated Käivitub, kui tellimuse andmeid, näiteks tellimuse olekut või täitmise olekut, uuendatakse.

Tellimuse olekud

Täitmise olekud

UURI SÜNDMUSE ANDMEID

Veebihooki andmete näidis

Näidis andmetest, mis veebihookiga saadetakse. Need andmed kajastavad tellimuse uuendust:

{
  "id": 23069,
  "number": "1250211835",
  "comments": null,
  "is_archived": false,
  "status": "imported",
  "fulfillment_status": "unfulfilled",
  "purchased_at": "2025-04-17T16:17:21.000000Z",
  "created_at": "2025-04-17T16:17:23.000000Z",
  "updated_at": "2025-04-18T07:43:52.000000Z",
  "rows": [
    {
      "id": 27954,
      "quantity": 1,
      "client_barcode": "1250211835",
      "fulfillment_status": "unfulfilled",
      "variant": {
        "id": 293457,
        "name": "Sherpa fleece deken",
        "subtitle": "100x150",
        "SKU": "SFD787231",
        "product": {
          "id": 5319,
          "name": "Sherpa fleece deken",
          "subtitle": "Sherpa fleece deken"
        }
      },
      "sources": [
        {
          "type": "print",
          "url": "https://storage.googleapis.com/fabrixa-api/storage/99b10aaa-df4d-47e4-9bc9-b1d6a785df4c/orders/merchandise-sources/120002795400.pdf",
          "properties": {
            "fill_style": "contain"
          }
        }
      ]
    }
  ]
}
KONTROLLI VEEBIHÄÄLESTUSE ALLIKAT

Veebihooki allkirjade kontroll

Et veenduda, et veebihooki päring on autentne ja muutmata, kontrolli päist x-webhook-signature. Selleks arvuta HMAC-SHA256 allkiri päringu töötlemata andmete ja oma salajase võtme põhjal uuesti ning võrdle seda saadud allkirjaga.

Puhta PHP näide

$payload = file_get_contents('php://input');
$yourSecret = 'your-secret-key';
$expectedSignature = base64_encode(hash_hmac('sha256', $payload, $yourSecret, true));
$receivedSignature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';

if (!hash_equals($expectedSignature, $receivedSignature)) {
    http_response_code(403);
    exit('Invalid signature');
}

Laraveli näide

public function handle(Request $request)
{
    $yourSecret = 'your-secret-key';
    $payload = $request->getContent();
    $expectedSignature = base64_encode(hash_hmac('sha256', $payload, $yourSecret, true));
    $receivedSignature = $request->header('x-webhook-signature');

    if (!hash_equals($expectedSignature, $receivedSignature)) {
        abort(403, 'Invalid signature');
    }

    // Continue processing...
}

Asenda $yourSecret oma jagatud salajase võtmega. Kasuta allkirjade võrdlemiseks alati hash_equals, et vähendada ajastusrünnakute ohtu.

MIS SIIS, KUI EDASTAMINE EBAÕNNESTUB?

Veebihooki kordused

Veebihookid lülitatakse vaikimisi välja pärast 10 ebaõnnestunud edastuskatset. Kui sinu lõpp-punkt tagastab ebaõnnestumise oleku, näiteks 404 või mis tahes 5xx vea, korratakse veebihooki kokku 10 korda. Kui see tagastab jätkuvalt vastusekoodi, mis ei ole 2xx ega 3xx, lülitatakse see välja. Õnnestunud vastused on:

TAGASTA SELGE VASTUS

Veebihooki vastus

Soovitame tungivalt, et sinu lõpp-punkt tagastaks veebihooki kättesaamise kinnitamiseks olekukoodi 200 OK võimalikult kiiresti. Kuigi õnnestunuks loetakse iga 2xx või 3xx vastus, on 200 kõige levinum ja usaldusväärsem.

Edastuse ajalõpu või kordamise vältimiseks tagasta kohe 200 OK ja töötle veebihooki andmeid asünkroonselt, näiteks taustatöö või järjekorra kaudu. Kui sinu lõpp-punkti vastus võtab liiga kaua aega, võib seda lugeda ebaõnnestumiseks, isegi kui vastus lõpuks õnnestub.

Vastused olekukoodidega vahemikus 4xx või 5xx ning ajalõpud käivitavad kordused vastavalt kordamismehhanismile.