---
title: "Serializácia pre API — Onboarding for Laravel | Roundly"
description: "Odovzdajte tok frontendu ako pole pripravené pre JSON alebo ako typované DTO FlowData, StepData a SectionData."
url: https://roundly-consulting.com/sk/open-source/navody/onboarding-for-laravel/serializacia
language: sk
---

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

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

# Serializácia pre API

Flow::toArray() vytvorí štruktúru, ktorú môžete rovno odovzdať frontendu:

```php
[
    'title' => 'Profile Onboarding',
    'percentage' => 50.0,
    'next_step' => [
        'key' => 'upload-photo',
        'title' => 'Upload Photo',
        'cta' => 'Upload Now',
        'action' => 'users@photo@upload',
        'is_completed' => false,
        'is_optional' => false,
        'meta' => [],
        'group' => null,
    ],
    'current_step' => [
        // same shape as next_step
    ],
    'is_completed' => false,
    'steps' => [
        // each step as ['key', 'title', 'cta', 'action', 'is_completed', 'is_optional', 'meta', 'group']
    ],
]
```

next\_step a current\_step nesú ten istý krok; oba sú null, keď už nezostáva žiadny nedokončený viditeľný krok. Názvy a CTA sú preložené texty.

## Typované DTO

Typovaný ekvivalent vráti Flow::toData() ako DTO FlowData a Step::toData() ako StepData. Každé DTO je final readonly a implementuje Arrayable a JsonSerializable:

```php
use RoundlyConsulting\Onboarding\DataTransferObjects\FlowData;

$data = Onboarding::for($user)?->toData();   // ?FlowData

$data?->title;          // ?string
$data?->percentage;     // float
$data?->currentStep;    // ?StepData — the same step as $data->nextStep
$data?->steps;          // list<StepData>
$data?->isCompleted;    // bool

$data?->currentStep?->key;      // 'upload-photo'
$data?->currentStep?->title;    // resolved title
```

| DTO | Vlastnosti | Zdroj |
| --- | --- | --- |
| `FlowData` | `title, percentage, nextStep, currentStep, steps, isCompleted` | Vracia ho Flow::toData(). |
| `StepData` | `key, title, cta, action, isCompleted, isOptional, meta, group` | Vracia ho Step::toData(); title a cta sú preložené. |
| `SectionData` | `key, title, percentage, isCompleted, steps` | Vracajú ho sections(), groups() a section(). |

## V API route

```php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use RoundlyConsulting\Onboarding\Facades\Onboarding;

Route::middleware('auth')->get('/api/onboarding', function (Request $request) {
    return response()->json(Onboarding::for($request->user())?->toData());
});
```

## 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/onboarding-for-laravel.md)
