{"id":52606,"date":"2023-05-19T13:23:34","date_gmt":"2023-05-19T11:23:34","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=52606&#038;preview=true&#038;preview_id=52606"},"modified":"2023-05-29T15:43:31","modified_gmt":"2023-05-29T13:43:31","slug":"laravel-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/","title":{"rendered":"Laravel API: Een API maken en testen in Laravel"},"content":{"rendered":"<p>Laravel <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent\" target=\"_blank\" rel=\"noopener noreferrer\">Eloquent<\/a> is een eenvoudige manier om interactie met je database te beheren. Het is een Object-Relational Mapper (ORM) die de complexiteit van databases vereenvoudigt door een model te bieden voor interactie met tabellen.<\/p>\n<p>Als zodanig heeft Laravel Eloquent uitstekende tools voor het maken en testen van API&#8217;s om je ontwikkeling te ondersteunen. In dit praktische artikel zie je hoe eenvoudig het is om API&#8217;s te maken en te testen met Laravel.<\/p>\n<p>In deze demonstratie begin je met het maken van een model dat je kunt gebruiken om de <a href=\"https:\/\/kinsta.com\/blog\/api-endpoint\/\">API<\/a> en database tabel te bouwen. Daarna zie je hoe je een controller toevoegt als bedrijfslogicalaag en een route om de API te voltooien. Vervolgens leer je hoe je API&#8217;s kunt testen met Postman, voordat je je als laatste richt op authenticatie en foutafhandeling.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Voorwaarden<\/h2>\n<p>Om te beginnen heb je het volgende nodig:<\/p>\n<ul>\n<li><a href=\"https:\/\/laravel.com\/docs\/9.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel versie 8 of 9<\/a><\/li>\n<li><a href=\"https:\/\/getcomposer.org\/download\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a><\/li>\n<li><a href=\"https:\/\/www.postman.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Postman<\/a><\/li>\n<li><a href=\"https:\/\/www.apachefriends.org\/download.html\" target=\"_blank\" rel=\"noopener noreferrer\">XAMPP<\/a><\/li>\n<li>Basiskennis van API&#8217;s en <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a><\/li>\n<\/ul>\n<h2>Grondbeginselen API<\/h2>\n<p>Begin met het maken van een nieuw Laravel project met <code><span id=\"urn:enhancement-51e45a64-8d33-47b8-bc0f-33c176a4a252\" class=\"textannotation\">composer<\/span><\/code>:<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel laravel-api-create-test<\/code><\/pre>\n<p>Voer het volgende commando uit om de server te starten, waardoor de applicatieserver op poort 8000 draait:<\/p>\n<pre><code class=\"language-bash\">cd laravel-api-create-test\nphp artisan serve<\/code><\/pre>\n<p>Je zou het volgende scherm moeten zien:<\/p>\n<figure style=\"width: 1250px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/laravel-landing-page.png\" alt=\"De Laravel landiingspagina\" width=\"1250\" height=\"679\"><figcaption class=\"wp-caption-text\">Laravel<\/figcaption><\/figure>\n<p>Maak nu een model met een <code>-m<\/code> flag voor de migratie met de onderstaande code:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Product -m<\/code><\/pre>\n<p>Upgrade nu het migratiebestand om het vereiste veld op te nemen. Voeg de velden title en description toe voor het productmodel en deze twee tabelvelden binnen het bestand <strong>database\/migrations\/{date_stamp}_create_products_table.php<\/strong>.<\/p>\n<pre><code class=\"language-php\">$table-&gt;string('title');\n$table-&gt;longText('description');<\/code><\/pre>\n<p>De volgende stap is om deze velden invulbaar te maken. Maak binnen <strong>app\/Models\/Product<\/strong><strong>.php<\/strong> <code>title<\/code> en <code>description<\/code> invulbare velden.<\/p>\n<pre><code class=\"language-php\">protected $fillable = ['title', 'description'];<\/code><\/pre>\n\n<h2>Een controller maken<\/h2>\n<p>Maak nu een controllerbestand voor het product door het volgende commando uit te voeren. Dit zal het bestand <strong>app\/Http\/Controllers\/Api\/ProductController.php<\/strong> aanmaken.<\/p>\n<pre><code class=\"language-bash\">php <span id=\"urn:enhancement-18794302-3f1c-4c52-a7c7-a36e136265a1\" class=\"textannotation\">artisan<\/span> make:<span id=\"urn:enhancement-d1441b92-9a0e-4549-a7dc-f4f8b658d8dc\" class=\"textannotation\">controller<\/span> <span id=\"urn:enhancement-82edc1b8-7370-46e3-94f9-5aa2b7ea660a\" class=\"textannotation\">Api<\/span>\\\\ProductController --<span id=\"urn:enhancement-a6657174-ca13-403c-a8a5-55fc145ea697\" class=\"textannotation\">model<\/span>=<span id=\"urn:enhancement-f3ff21b3-b7a0-486a-aab6-2d5b8c64df8e\" class=\"textannotation\">Product<\/span><\/code><\/pre>\n<p>Voeg nu de logica toe voor het aanmaken en ophalen van de producten. Voeg in de methode <code>index<\/code> de volgende code toe om alle producten op te halen:<\/p>\n<pre><code class=\"language-php\">$products = Product::all();\nreturn response()-&gt;json([\n    'status' =&gt; true,\n    'products' =&gt; $products\n]);<\/code><\/pre>\n<p>Daarna moet je een klasse <code>StoreProductRequest<\/code> toevoegen voor het opslaan van de nieuwe producten in de database. Voeg bovenaan hetzelfde bestand de volgende klasse toe.<\/p>\n<pre><code class=\"language-php\">public function store(StoreProductRequest $request)\n {\n    $product = Product::create($request-&gt;all());\n\n    return response()-&gt;json([\n        'status' =&gt; true,\n        'message' =&gt; \"Product Created successfully!\",\n        'product' =&gt; $product\n    ], 200);\n }<\/code><\/pre>\n<p>Nu maak je het verzoek aan, wat je kunt doen door het volgende commando uit te voeren:<\/p>\n<pre><code class=\"language-bash\">php artisan make:request StoreProductRequest<\/code><\/pre>\n<p>Als je validaties wilt toevoegen, kun je het bestand <strong>app\/Http\/Requests\/StoreProductRequest.php<\/strong> gebruiken. Voor deze demonstratie zijn er geen validaties.<\/p>\n<h2>Zo maak je een route aan<\/h2>\n<p>De laatste stap voor het testen van de API is het toevoegen van een route. Voeg daarvoor de volgende code toe in het bestand <strong>routes\/api.php<\/strong>. Voeg het <code>use<\/code> statement toe aan het begin van het bestand en het <code>Route<\/code> statement in de body:<\/p>\n<pre><code class=\"language-php\"><span id=\"urn:enhancement-63198fab-2bc6-4d16-b1cc-3976cd6d9090\" class=\"textannotation\">use<\/span> <span id=\"urn:enhancement-d2f65b0e-5258-4c92-acec-440c0eb70efd\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-432c0e3a-5e0d-402e-b7de-512c3867ece9\" class=\"textannotation\">Http<\/span>\\Controllers\\<span id=\"urn:enhancement-aa2ab63c-03af-4dad-b5cc-e3c836cc1a23\" class=\"textannotation\">Api<\/span>\\ProductController;\nRoute::apiResource('<span id=\"urn:enhancement-a12208a9-1a20-488b-b6fc-2e8efca5d5e8\" class=\"textannotation\">products<\/span>', ProductController::<span id=\"urn:enhancement-34daf005-9ae0-44c0-85fb-adee9210d831\" class=\"textannotation\">class<\/span>);<\/code><\/pre>\n<p>Voordat je de API gaat testen, moet je ervoor zorgen dat de <strong>Products <\/strong>tabel\u00a0in je database staat. Als die niet bestaat, maak er dan een aan met een controlepaneel zoals XAMPP. Als alternatief kun je het volgende commando uitvoeren om de database te migreren:<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<h2>Zo test je een API<\/h2>\n<p>Voordat je de API test, moet je ervoor zorgen dat de <code>authorize<\/code> methode in de <strong>app\/Http\/Requests\/StoreProductRequest.php<\/strong> is ingesteld op <code>true<\/code>.<\/p>\n<p>Nu kun je een nieuw product maken met Postman. Begin met het slaan van een <code>POST<\/code> verzoek naar deze URL: <a href=\"http:\/\/127.0.0.1:8000\/api\/products\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/127.0.0.1:8000\/api\/products\/<\/a>. Omdat het een <code>POST<\/code> verzoek is om een nieuw product te maken, moet je een JSON object met een titel en beschrijving doorgeven.<\/p>\n<pre><code class=\"language-php\">{\n    \"title\":\"Apple\",\n    \"description\":\"Best Apples of the world\"\n}<\/code><\/pre>\n<figure style=\"width: 680px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/create-product-postman.png\" alt=\"Een nieuw product maken in Postman\" width=\"680\" height=\"287\"><figcaption class=\"wp-caption-text\">Een nieuw product maken in Postman<\/figcaption><\/figure>\n<p>Nadat je op de knop <b>Send <\/b>hebt geklikt, zou je het volgende moeten zien:<\/p>\n<figure style=\"width: 572px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/postman-code.png\" alt=\"Postman nadat je op Send hebt geklikt\" width=\"572\" height=\"326\"><figcaption class=\"wp-caption-text\">Na het klikken op Send<\/figcaption><\/figure>\n<p>Haal nu de aangemaakte producten op met het <code>GET<\/code> verzoek. De <a href=\"https:\/\/kinsta.com\/nl\/blog\/wat-is-een-url\/\">URL<\/a> is hetzelfde. De resultaten zullen er als volgt uitzien:<\/p>\n<figure style=\"width: 792px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/get-code-products-fetched.png\" alt=\"De producten opgehaald met het GEt verzoek.\" width=\"792\" height=\"860\"><figcaption class=\"wp-caption-text\">De producten opgehaald door het GET verzoek.<\/figcaption><\/figure>\n<h2>Zo authenticeer je een API met Sanctum<\/h2>\n<p>Authenticatie is cruciaal bij het beveiligen van een API. Laravel maakt het gemakkelijk door de functionaliteit van het Sanctum token te bieden, dat je kunt gebruiken als middleware. Het beveiligt de API met behulp van tokens die worden gegenereerd wanneer de gebruiker inlogt met de juiste gegevens. Vergeet niet dat gebruikers zonder token geen toegang hebben tot de beveiligde API.<\/p>\n<p>De eerste stap om authenticatie toe te voegen is het toevoegen van een Sanctum pakket met de onderstaande code:<\/p>\n<pre><code class=\"language-bash\">composer require laravel\/sanctum<\/code><\/pre>\n<p>Publiceer vervolgens het Sanctum configuratiebestand:<\/p>\n<pre><code class=\"language-bash\">php <span id=\"urn:enhancement-b927ad6d-9de3-4ef4-9677-68c18d9152c6\" class=\"textannotation\">artisan<\/span> <span id=\"urn:enhancement-a22b02a4-b222-4ccb-9ce2-448e80784c44\" class=\"textannotation\">vendor<\/span>:publish --provider=\"<span id=\"urn:enhancement-702c0a72-9d5d-4997-9c42-6b7dd2ca07f3\" class=\"textannotation\">Laravel<\/span>\\<span id=\"urn:enhancement-a28b9288-6ba6-4679-a1f6-f3eb941e8a9c\" class=\"textannotation\">Sanctum<\/span>\\SanctumServiceProvider\"<\/code><\/pre>\n<p>Voeg daarna het token van Sanctum toe als middleware. Gebruik binnen het <strong>app\/Http\/Kernel.php<\/strong> bestand de volgende klasse en vervang <code>middlewareGroups<\/code> door de volgende code in de beschermde API van middleware groepen.<\/p>\n<pre><code class=\"language-php\"><span id=\"urn:enhancement-fbc4cdf8-fb98-43ec-94de-4a9b64b3fdd7\" class=\"textannotation\">use<\/span> <span id=\"urn:enhancement-438506a1-cb86-4141-93a2-ca203da3d6c5\" class=\"textannotation\">Laravel<\/span>\\<span id=\"urn:enhancement-45ec6939-d6ad-4613-9d14-52be52bec82b\" class=\"textannotation\">Sanctum<\/span>\\<span id=\"urn:enhancement-820d40e9-29b5-4ee3-9853-55a134761067\" class=\"textannotation\">Http<\/span>\\<span id=\"urn:enhancement-3d4f2cbe-a9a5-4e38-a1f8-0d1e60abb2ee\" class=\"textannotation\">Middleware<\/span>\\EnsureFrontendRequestsAreStateful;<\/code><\/pre>\n<pre><code class=\"language-php\">protected $middlewareGroups = [\n    'web' =&gt; [\n        \\<span id=\"urn:enhancement-81ec3f33-bf6b-4a78-95be-6d7bea0af805\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-a92f10a5-a454-4bf6-b117-035f66e927c2\" class=\"textannotation\">Http<\/span>\\<span id=\"urn:enhancement-93213aed-ea56-4294-a5a3-90c7c856993a\" class=\"textannotation\">Middleware<\/span>\\EncryptCookies::<span id=\"urn:enhancement-0001cdcf-3a3a-4f79-8167-7312ca64b0db\" class=\"textannotation\">class<\/span>,\n        \\Illuminate\\<span id=\"urn:enhancement-bc2a7aa8-4b5c-4a5f-94fe-796ac9443c83\" class=\"textannotation\">Cookie<\/span>\\<span id=\"urn:enhancement-9f2b994a-a43b-4cad-8ef0-45644c9e72a6\" class=\"textannotation\">Middleware<\/span>\\AddQueuedCookiesToResponse::<span id=\"urn:enhancement-67ee2f33-97f8-4a6c-9dd3-8ed499f33a15\" class=\"textannotation\">class<\/span>,\n        \\Illuminate\\<span id=\"urn:enhancement-6f16bf79-9be6-4fa8-a071-d61869843636\" class=\"textannotation\">Session<\/span>\\<span id=\"urn:enhancement-e1430907-4bd3-42bf-b641-8232ae197ca9\" class=\"textannotation\">Middleware<\/span>\\StartSession::<span id=\"urn:enhancement-11f830dd-3988-4247-8657-93f89ab0876f\" class=\"textannotation\">class<\/span>,\n        \/\/ \\Illuminate\\<span id=\"urn:enhancement-559f4323-6c8f-44dd-86b4-3903e8fa0b97\" class=\"textannotation\">Session<\/span>\\<span id=\"urn:enhancement-4176602b-dadc-429b-a6b8-e81013d48be0\" class=\"textannotation\">Middleware<\/span>\\AuthenticateSession::<span id=\"urn:enhancement-06707783-9489-4ec0-8cff-f3211972c5f6\" class=\"textannotation\">class<\/span>,\n        \\Illuminate\\View\\<span id=\"urn:enhancement-8c064ca8-bce0-40fb-bb01-e9acd807f52c\" class=\"textannotation\">Middleware<\/span>\\ShareErrorsFromSession::<span id=\"urn:enhancement-e473ceb6-23dd-4aa4-8b0b-ede6c6d45b9a\" class=\"textannotation\">class<\/span>,\n        \\<span id=\"urn:enhancement-08d88457-f369-4932-a980-b2e049024ba8\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-6c04e46a-75e2-4e00-a7cb-5f661f5c08b5\" class=\"textannotation\">Http<\/span>\\<span id=\"urn:enhancement-c19a03d0-2c9d-47b8-a918-7acc510f2e10\" class=\"textannotation\">Middleware<\/span>\\VerifyCsrfToken::<span id=\"urn:enhancement-c0773868-390a-4764-8c16-3387772bde3d\" class=\"textannotation\">class<\/span>,\n        \\Illuminate\\Routing\\<span id=\"urn:enhancement-6c7fc7c2-825d-4528-a5cb-3a3e75a61446\" class=\"textannotation\">Middleware<\/span>\\SubstituteBindings::<span id=\"urn:enhancement-14a44baa-7e04-4631-8ab9-91165b9e7598\" class=\"textannotation\">class<\/span>,\n    ],\n\n    'api' =&gt; [\n        EnsureFrontendRequestsAreStateful::class,\n        'throttle:api',\n        \\Illuminate\\Routing\\<span id=\"urn:enhancement-4e393822-5bb5-4da1-9c05-6da406090730\" class=\"textannotation\">Middleware<\/span>\\SubstituteBindings::<span id=\"urn:enhancement-15a9c1bb-ac2a-43cf-88f1-4e0d5cc8147e\" class=\"textannotation\">class<\/span>,\n    ],\n];<\/code><\/pre>\n<p>De volgende stap is het maken van een <code>UserController<\/code> en het toevoegen van de code om het token te krijgen om te authenticeren.<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller UserController<\/code><\/pre>\n<p>Na het aanmaken van de <code>UserController<\/code>, navigeer je naar het bestand <strong>app\/Http\/Controllers\/UserController.php<\/strong> en vervang de bestaande code door de volgende code:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n<span id=\"urn:enhancement-d6fa9d9e-8197-4ad4-b78e-44f16837a1f0\" class=\"textannotation\">namespace<\/span> <span id=\"urn:enhancement-c2a90ab5-b84c-4d18-b65f-0b2b6dd57ebe\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-ba9eb5b7-e0d9-480e-bc0e-c0442efab7c4\" class=\"textannotation\">Http<\/span>\\Controllers;\n\n<span id=\"urn:enhancement-e44e3093-7627-402c-b63f-2bd0207b2fdb\" class=\"textannotation\">use<\/span> Illuminate\\<span id=\"urn:enhancement-ffa15a46-e1a8-4b95-aeb2-28b786575f35\" class=\"textannotation\">Http<\/span>\\Request;\n<span id=\"urn:enhancement-62f23be2-eed1-4f51-9767-69c7c8eb95b4\" class=\"textannotation\">use<\/span> <span id=\"urn:enhancement-04d1c6c6-34c8-4da4-a8e0-53d775abce8b\" class=\"textannotation\">App<\/span>\\Models\\<span id=\"urn:enhancement-b67cbbdf-bfc3-4007-bd55-dec816447519\" class=\"textannotation\">User<\/span>;\n<span id=\"urn:enhancement-27f05e21-bdad-4965-939b-c74dd03f41a8\" class=\"textannotation\">use<\/span> Illuminate\\Support\\<span id=\"urn:enhancement-4fff210d-2921-43c9-91d2-94c22cd44204\" class=\"textannotation\">Facades<\/span>\\<span id=\"urn:enhancement-60579df1-32ba-4a04-8535-890339666699\" class=\"textannotation\">Hash<\/span>;\n<span id=\"urn:enhancement-7abba868-e34a-4bc1-87a7-a77fed38ef21\" class=\"textannotation\">class<\/span> UserController extends <span id=\"urn:enhancement-907bde9a-f6f0-442a-86f6-8b1c5a601600\" class=\"textannotation\">Controller<\/span>\n{\n    \/\/ \n\n    function index(Request $request)\n    {\n        $user= User::where('email', $request-&gt;email)-&gt;first();\n        \/\/ print_r($data);\n            if (!$user || !Hash::check($request-&gt;password, $user-&gt;password)) {\n                return response([\n                    'message' =&gt; ['These credentials do not match our records.']\n                ], 404);\n            }\n        \n             $token = $user-&gt;createToken('my-app-token')-&gt;plainTextToken;\n        \n            $response = [\n                'user' =&gt; $user,\n                'token' =&gt; $token\n            ];\n        \n             return response($response, 201);\n    }\n}<\/code><\/pre>\n<p>Voordat je de authenticatie kunt testen, maak je een user employing seeder aan. Het volgende commando maakt een <strong>UsersTableSeeder<\/strong> bestand aan.<\/p>\n<pre><code class=\"language-bash\">php artisan make:seeder UsersTableSeeder<\/code><\/pre>\n<p>Vervang in het bestand <strong>database\/seeders\/UsersTableSeeder.php<\/strong> de bestaande code door de volgende code om de gebruiker te zaaien:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\n<span id=\"urn:enhancement-f77ca353-708d-49c0-90e7-2947c733e010\" class=\"textannotation\">namespace<\/span> <span id=\"urn:enhancement-ea477a20-61c0-4ded-aba8-6a8871f20fb2\" class=\"textannotation\">Database<\/span>\\Seeders;\n\n<span id=\"urn:enhancement-2df0598c-347a-4ee1-95dd-5ac0e2c459a7\" class=\"textannotation\">use<\/span> Illuminate\\<span id=\"urn:enhancement-a7fa2f5e-ece9-4244-b87d-92fc90b7b8c6\" class=\"textannotation\">Database<\/span>\\Seeder;\n<span id=\"urn:enhancement-85c636d5-a8a9-412b-963b-86b75fd6bd99\" class=\"textannotation\">use<\/span> Illuminate\\Support\\<span id=\"urn:enhancement-6ec91581-f9cb-4d16-a8a5-1313a7927b03\" class=\"textannotation\">Facades<\/span>\\DB;\n<span id=\"urn:enhancement-cbe4a20a-36ca-4774-a944-c8cd1e559023\" class=\"textannotation\">use<\/span> Illuminate\\Support\\<span id=\"urn:enhancement-08ab71d7-e7a4-4787-a27b-96fbf0349f37\" class=\"textannotation\">Facades<\/span>\\<span id=\"urn:enhancement-fb4c3076-900f-4080-991a-c55b9366f7f1\" class=\"textannotation\">Hash<\/span>;\n\nclass UsersTableSeeder extends Seeder\n{\n    \/**\n     * Run the database seeds.\n     *\n     * @return void\n     *\/\n    public function run()\n    {\n        DB::table('users')-&gt;insert([\n            'name' =&gt; 'John Doe',\n            'email' =&gt; 'john@doe.com',\n            'password' =&gt; Hash::make('password')\n        ]);\n    }\n}<\/code><\/pre>\n<p>Voer nu de seeder uit met dit commando:<\/p>\n<pre><code class=\"language-bash\">php artisan db:seed --class=UsersTableSeeder<\/code><\/pre>\n<p>De laatste stap die overblijft in de authenticatieflow is om de gemaakte middleware te gebruiken om de route te beveiligen. Navigeer naar het bestand <strong>routes\/api.php<\/strong> en voeg de producten route toe binnen de middleware.<\/p>\n<pre><code class=\"language-php\"><span id=\"urn:enhancement-ca8197fc-d882-4756-81a9-5335dcf632d9\" class=\"textannotation\">use<\/span> <span id=\"urn:enhancement-2559fb6d-2722-4f8f-b545-47445fb564e5\" class=\"textannotation\">App<\/span>\\<span id=\"urn:enhancement-aad59e04-367b-4c41-8e8c-06610dc164c7\" class=\"textannotation\">Http<\/span>\\Controllers\\UserController;\n\nRoute::group(['middleware' =&gt; 'auth:sanctum'], <span id=\"urn:enhancement-f509eb50-8e65-405e-9ed5-56055e5fb07d\" class=\"textannotation\">function<\/span> () {\n    Route::apiResource('<span id=\"urn:enhancement-6dd59a70-aa91-4b16-b7ec-31d2eeefa818\" class=\"textannotation\">products<\/span>', ProductController::<span id=\"urn:enhancement-79ada867-62ab-45f5-b27f-cef43e6ed929\" class=\"textannotation\">class<\/span>);\n});\n\nRoute::post(\"login\",[UserController::class,'index']);<\/code><\/pre>\n<p>Na het toevoegen van een route aan de middleware krijg je een interne serverfout als je de producten probeert op te halen.<\/p>\n<figure style=\"width: 1044px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/internal-server-error.png\" alt=\"Een interne serverfout na het toevoegen van een route\" width=\"1044\" height=\"644\"><figcaption class=\"wp-caption-text\">Een interne serverfout na het toevoegen van een route<\/figcaption><\/figure>\n<p>Maar zodra je inlogt, een token krijgt, en dat in de header gebruikt, zal het je authenticeren en beginnen te werken. Je kunt een POST verzoek sturen naar <a href=\"http:\/\/127.0.0.1:8000\/api\/login\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/127.0.0.1:8000\/api\/login<\/a> met de volgende body:<\/p>\n<pre><code class=\"language-php\">{\n    \"email\":\"john@doe.com\",\n    \"password\":\"password\"\n}<\/code><\/pre>\n<figure style=\"width: 574px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/authentication-bearer-token.png\" alt=\"Succesvolle authenticatie en de Bearer token\" width=\"574\" height=\"675\"><figcaption class=\"wp-caption-text\">Succesvolle authenticatie<\/figcaption><\/figure>\n<p>Gebruik het ontvangen token als een Bearer token en voeg het toe als de Authorization header.<\/p>\n<figure style=\"width: 941px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/add-bearer-token.png\" alt=\"Het Bearer token toevoegen als Authorization header\" width=\"941\" height=\"858\"><figcaption class=\"wp-caption-text\">Het Bearer token toevoegen als Authorization header<\/figcaption><\/figure>\n<h2>Zo handel je API fouten af<\/h2>\n<p>Wanneer je een verzoek naar de server stuurt, stuurt deze een respons. Met de respons stuurt hij ook een <a href=\"https:\/\/kinsta.com\/nl\/blog\/http-status-codes\/\">statuscode<\/a>, afhankelijk van de aard van de respons. Een 200 statuscode geeft bijvoorbeeld aan dat het verzoek gelukt is, en een <a href=\"https:\/\/kinsta.com\/nl\/blog\/error-404-not-found\/\">404<\/a> suggereert dat de server de gevraagde bron niet kan vinden.<\/p>\n<p>Een statuscode is echter niet genoeg. Een menselijk leesbare foutmelding is nodig. Laravel heeft vele manieren om fouten af te handelen. Je kunt een try-catch blok gebruiken, de fallback methode, of een custom respons sturen. De volgende code die je hebt toegevoegd aan de <code>UserController<\/code> demonstreert dit.<\/p>\n<pre><code class=\"language-php\">if (!$user || !Hash::check($request-&gt;password, $user-&gt;password)) {\n    return response([\n        'message' =&gt; ['These credentials do not match our records.']\n    ], 404);\n}<\/code><\/pre>\n\n<h2>Samenvatting<\/h2>\n<p>Laravels Eloquent Model maakt het eenvoudig om API&#8217;s te maken, te valideren en te testen. De Object-Relational Mapping biedt een eenvoudige manier voor interactie met de database.<\/p>\n<p>Bovendien kan Laravel&#8217;s Sanctum token als middleware helpen om je API&#8217;s snel te beveiligen.<\/p>\n<p>En als je verdere optimalisatie nodig hebt, vereenvoudigt Kinsta&#8217;s <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Database Hosting<\/a> oplossing het opzetten en beheren van databases voor al je webprojecten.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel Eloquent is een eenvoudige manier om interactie met je database te beheren. Het is een Object-Relational Mapper (ORM) die de complexiteit van databases vereenvoudigt door &#8230;<\/p>\n","protected":false},"author":199,"featured_media":52607,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[],"class_list":["post-52606","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Laravel API: Een API maken en testen in Laravel - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Leer hoe je in Laravel API&#039;s kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel API: Een API maken en testen in Laravel\" \/>\n<meta property=\"og:description\" content=\"Leer hoe je in Laravel API&#039;s kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-19T11:23:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-29T13:43:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeremy Holcombe\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Leer hoe je in Laravel API&#039;s kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Laravel API: Een API maken en testen in Laravel\",\"datePublished\":\"2023-05-19T11:23:34+00:00\",\"dateModified\":\"2023-05-29T13:43:31+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\"},\"wordCount\":1225,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\",\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\",\"name\":\"Laravel API: Een API maken en testen in Laravel - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\",\"datePublished\":\"2023-05-19T11:23:34+00:00\",\"dateModified\":\"2023-05-29T13:43:31+00:00\",\"description\":\"Leer hoe je in Laravel API's kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel API: Een API maken en testen in Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g\",\"caption\":\"Jeremy Holcombe\"},\"description\":\"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/jeremyholcombe\/\"],\"url\":\"https:\/\/kinsta.com\/nl\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel API: Een API maken en testen in Laravel - Kinsta\u00ae","description":"Leer hoe je in Laravel API's kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/","og_locale":"nl_NL","og_type":"article","og_title":"Laravel API: Een API maken en testen in Laravel","og_description":"Leer hoe je in Laravel API's kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.","og_url":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2023-05-19T11:23:34+00:00","article_modified_time":"2023-05-29T13:43:31+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Leer hoe je in Laravel API's kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","twitter_creator":"@Kinsta_NL","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Jeremy Holcombe","Geschatte leestijd":"8 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Laravel API: Een API maken en testen in Laravel","datePublished":"2023-05-19T11:23:34+00:00","dateModified":"2023-05-29T13:43:31+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/"},"wordCount":1225,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","inLanguage":"nl-NL","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/","url":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/","name":"Laravel API: Een API maken en testen in Laravel - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","datePublished":"2023-05-19T11:23:34+00:00","dateModified":"2023-05-29T13:43:31+00:00","description":"Leer hoe je in Laravel API's kunt testen door een model te maken waarmee je de API in Laravel kunt bouwen.","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/laravel-api\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/05\/laravel-api.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/laravel-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"Laravel API: Een API maken en testen in Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0e17001f3bb37dbbe54fceef9bb547fa?s=96&d=mm&r=g","caption":"Jeremy Holcombe"},"description":"Senior Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems.","sameAs":["https:\/\/www.linkedin.com\/in\/jeremyholcombe\/"],"url":"https:\/\/kinsta.com\/nl\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=52606"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52606\/revisions"}],"predecessor-version":[{"id":52776,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/52606\/revisions\/52776"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/translations\/es"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/52606\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/52607"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=52606"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=52606"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=52606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}