---
title: "Záznam doručení a resources — Webhooks for Laravel | Roundly"
description: "Vymeniteľné modely a ich pomocníci, dopyty nad záznamom v oboch smeroch, JSON resources pre vlastné obrazovky a zobrazenie vlastníka."
url: https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel/zaznam-doruceni
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Webhooks for Laravel](https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel.md)

# Záznam doručení a resources

Každá správa v oboch smeroch sa zaznamená — stav, pokusy, kód odpovede, trvanie, kód chyby a bezpečná správa, zhodný tajný kľúč, obmedzený výňatok odpovede a informácia, či bola odpoveď dlhšia — nikdy tajný kľúč, podpis ani prihlasovacia hlavička.

## Modely

| Model | Kľúč | Tabuľka |
| --- | --- | --- |
| `InboundEndpoint` | `models.inbound_endpoint` | `webhook_inbound_endpoints` |
| `InboundDelivery` | `models.inbound_delivery` | `webhook_inbound_deliveries` |
| `OutboundEndpoint` | `models.outbound_endpoint` | `webhook_outbound_endpoints` |
| `OutboundDelivery` | `models.outbound_delivery` | `webhook_outbound_deliveries` |
| `OutboundAttempt` | `models.outbound_attempt` | `webhook_outbound_attempts` |

Náhrada musí rozširovať model balíka. Každý časový údaj sa ukladá a číta v UTC; každá tabuľka má mäkké mazanie (čistenie maže natrvalo). Vzťahy: InboundEndpoint::owner() a deliveries(); InboundDelivery::endpoint(); OutboundEndpoint::owner() a deliveries(); OutboundDelivery::endpoint() a attemptLog(); OutboundAttempt::delivery(). Casty Casts\\UtcDateTime, Casts\\StoredPayload a Casts\\StoredText sú verejné a môžete ich použiť na vymenenom modeli.

| Metóda | Vracia |
| --- | --- |
| `InboundEndpoint::url()` | URL, na ktorú odosielateľ posiela (inbound.route.url\_base + / + kľúč, inak pomenovaná trasa). |
| `activeSecrets()` | Oba modely endpointov: list<string> — aktuálny tajný kľúč, potom predchádzajúci do konca prechodného obdobia. |
| `OutboundEndpoint::subscribesTo(string $eventType)` | bool — zhoda s odbermi. |
| `OutboundDelivery::webhookId()` | msg\_<public\_id> — webhook-id, podľa ktorého príjemcovia deduplikujú, rovnaké pri každom pokuse aj opätovnom doručení. |

## Dopyty nad záznamom

```php
Webhooks::inbound()->deliveries($endpoint)->where('status', 'failed')->latest('received_at')->paginate();
Webhooks::outbound()->deliveries()->where('status', 'retrying')->get();
Webhooks::outbound()->attempts($delivery);      // every attempt of every series, in order
```

## JSON resources

V RoundlyConsulting\\Webhooks\\Http\\Resources. Časové údaje sa zobrazia ako ISO 8601 UTC, enumy ako ich hodnota — nikdy tajný kľúč, šifrovaný text, hodnota hlavičky ani názov triedy:

| Resource | Polia |
| --- | --- |
| `InboundEndpointResource` | id, name, url, scheme, handler, enabled, disabled\_reason, owner, last\_received\_at, secret\_rotated\_at, previous\_secret\_expires\_at, created\_at |
| `InboundDeliveryResource` | id (verejné id), endpoint\_id, event\_type, status, signature\_slot, received\_at, processed\_at, failed\_at, runs, error\_code, error\_message, payload\_pruned; ->withPayload(bool $include = true) pridá sanitizovaný obsah |
| `OutboundEndpointResource` | id, name, description, url (scheme://host\[:port\]/…), host, event\_types, názvy hlavičiek, scheme, enabled, disabled\_reason, consecutive\_failures, last\_success\_at, last\_failure\_at, owner, created\_at |
| `OutboundDeliveryResource` | id (msg\_…), endpoint\_id, event\_type, status, attempts, series, max\_attempts, next\_attempt\_at, last\_response\_status, last\_error\_code, succeeded\_at, failed\_at, created\_at |
| `OutboundAttemptResource` | number, series, manual, started\_at, duration\_ms, response\_status, response\_truncated, error\_code, error\_message, retry\_after\_seconds |

```php
use RoundlyConsulting\Webhooks\Http\Resources\InboundDeliveryResource;
use RoundlyConsulting\Webhooks\Http\Resources\InboundEndpointResource;
use RoundlyConsulting\Webhooks\Http\Resources\OutboundAttemptResource;

$endpoints = InboundEndpointResource::collection(Webhooks::for($team)->inbound()->endpoints());   // owner eager-loaded
$delivery = InboundDeliveryResource::make($inboundDelivery)->withPayload();                        // + the sanitized payload
$attempts = OutboundAttemptResource::collection(Webhooks::outbound()->attempts($outboundDelivery));
```

Vracajte ich z vlastných kontrolérov. Balík neobsahuje trasy ani rozhranie na správu — len prichádzajúcu trasu — takže API a obrazovky, ktorými zákazníci spravujú svoje endpointy, sú vaše, postavené na prístupoch a týchto resources. OutboundEndpointResource::redact(string $url) je samostatné skrytie URL pre vaše vlastné zobrazenia.

## Zobrazenie vlastníka

Vlastník endpointu sa zobrazí len cez WebhookOwnerResource — {id, type} so základným názvom triedy, takže App\\Models\\Team nikdy neodíde von. Ak chcete pridať meno alebo avatar, nasmerujte resources.owner na vlastný JsonResource; dostane model vlastníka. Pri kolekciách endpointov vlastníka prednačítajte (endpoints() to robí) — inak sa owner zobrazí ako null.

```php
// config/webhooks.php
'resources' => ['owner' => App\Http\Resources\WebhookOwnerResource::class],
```

## Databázová schéma

Päť tabuliek pomenovaných podľa webhooks.tables.\*, pre MySQL a PostgreSQL. Id sa riadia primary\_key\_type, morf vlastníka key\_type; cudzie kľúče pri mazaní obmedzujú, takže doručenie si drží riadok endpointu a pokus svoje doručenie, kým ich retencia v správnom poradí neodstráni:

| Tabuľka | Stĺpce |
| --- | --- |
| `webhook_inbound_endpoints` | morf owner (nullable), name, url\_key (32, unikátny), signature\_scheme, scheme\_options, secret a previous\_secret (šifrované, skryté), previous\_secret\_expires\_at, secret\_rotated\_at, handler, prepísania (rate\_limit\_per\_minute, max\_payload\_bytes, allowed\_content\_types, tolerance\_seconds), enabled, disabled\_at, disabled\_reason, last\_received\_at. |
| `webhook_inbound_deliveries` | public\_id (ULID, unikátny), endpoint\_id, idempotency\_key (unikátny spolu s endpoint\_id — poistka deduplikácie), external\_id, event\_type, status, headers, payload (uložený, skrytý), payload\_bytes, payload\_digest, payload\_pruned\_at, signature\_slot, received\_at, queued\_at, processing\_started\_at, processed\_at, failed\_at, runs, attempts, duration\_ms, last\_error\_code, last\_error\_message. |
| `webhook_outbound_endpoints` | morf owner (nullable), name, description, url (šifrovaná, skrytá), url\_host, signature\_scheme, scheme\_options, secret a previous\_secret (šifrované, skryté), event\_types, headers (šifrované, skryté), rate\_limit\_per\_minute, enabled, disabled\_at, disabled\_reason, consecutive\_failures, last\_success\_at, last\_failure\_at. |
| `webhook_outbound_deliveries` | public\_id (ULID za msg\_…), endpoint\_id, event\_type, body (uložené, skryté), body\_bytes, body\_digest, payload\_pruned\_at, status, attempts, series, max\_attempts, next\_attempt\_at, claimed\_until, dispatch\_token, dispatched\_at, redispatch\_at, last\_attempt\_at, succeeded\_at, failed\_at, last\_response\_status, last\_duration\_ms, last\_error\_code, last\_error\_message. |
| `webhook_outbound_attempts` | delivery\_id, series a number (unikátne s delivery\_id), manual, started\_at, duration\_ms, response\_status, response\_body (obmedzený výňatok), response\_truncated, retry\_after\_seconds, remote\_address, error\_code, error\_message, next\_attempt\_at. |

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/webhooks-for-laravel.md)
