{"id":61919,"date":"2023-05-19T12:20:42","date_gmt":"2023-05-19T11:20:42","guid":{"rendered":"https:\/\/kinsta.com\/de\/?p=61919&#038;preview=true&#038;preview_id=61919"},"modified":"2023-07-27T11:14:17","modified_gmt":"2023-07-27T10:14:17","slug":"laravel-api","status":"publish","type":"post","link":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/","title":{"rendered":"Laravel API: Erstellen und Testen einer API in Laravel"},"content":{"rendered":"<p>Laravel <a href=\"https:\/\/laravel.com\/docs\/9.x\/eloquent\" target=\"_blank\" rel=\"noopener noreferrer\">Eloquent<\/a> ist eine einfache M\u00f6glichkeit, mit deiner Datenbank zu interagieren. Es ist ein objektrelationaler Mapper (ORM), der die Komplexit\u00e4t von Datenbanken vereinfacht, indem er ein Modell f\u00fcr die Interaktion mit Tabellen bereitstellt.<\/p>\n<p>Daher verf\u00fcgt Laravel Eloquent \u00fcber hervorragende Werkzeuge zum Erstellen und Testen von APIs, die deine Entwicklung unterst\u00fctzen. In diesem praktischen Artikel erf\u00e4hrst du, wie einfach es ist, mit Laravel APIs zu erstellen und zu testen.<\/p>\n<p>In dieser Demonstration erstellst du zun\u00e4chst ein Modell, mit dem du die <a href=\"https:\/\/kinsta.com\/de\/blog\/api-endpunkt\/\">API<\/a> und die Datenbanktabelle erstellen kannst. Dann erf\u00e4hrst du, wie du einen Controller als Gesch\u00e4ftslogikschicht und eine Route zur Vervollst\u00e4ndigung der API hinzuf\u00fcgst. Anschlie\u00dfend lernst du, wie du APIs mit Postman testen kannst, bevor du dich auf die Authentifizierung und Fehlerbehandlung konzentrierst.<\/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>Voraussetzungen<\/h2>\n<p>Um loszulegen, brauchst du Folgendes:<\/p>\n<ul>\n<li><a href=\"https:\/\/laravel.com\/docs\/9.x\/installation\" target=\"_blank\" rel=\"noopener noreferrer\">Laravel Version 8 oder 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>Grundkenntnisse \u00fcber APIs und <a href=\"https:\/\/kinsta.com\/php\/\">PHP<\/a><\/li>\n<\/ul>\n<h2>API-Grundlagen<\/h2>\n<p>Beginne damit, ein neues Laravel-Projekt mit &lt;code&gt;composer&lt;\/code&gt; zu erstellen:<\/p>\n<pre><code class=\"language-bash\">composer create-project laravel\/laravel laravel-api-create-test<\/code><\/pre>\n<p>Um den Server zu starten, f\u00fchre den folgenden Befehl aus, der den Anwendungsserver auf Port 8000 ausf\u00fchrt:<\/p>\n<pre><code class=\"language-bash\">cd laravel-api-create-test\nphp artisan serve<\/code><\/pre>\n<p>Du solltest den folgenden Bildschirm sehen:<\/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=\"Laravel Landing Page\" width=\"1250\" height=\"679\"><figcaption class=\"wp-caption-text\">Laravel<\/figcaption><\/figure>\n<p>Erstelle dann ein Modell mit einem <code>-m<\/code> Flag f\u00fcr die Migration, indem du den folgenden Code verwendest:<\/p>\n<pre><code class=\"language-bash\">php artisan make:model Product -m<\/code><\/pre>\n<p>Aktualisiere nun die Migrationsdatei, um das erforderliche Feld aufzunehmen. F\u00fcge die Felder Titel und Beschreibung f\u00fcr das Produktmodell und diese beiden Tabellenfelder in der Datei <strong>database\/migrations\/{date_stamp}_create_products_table.php<\/strong> hinzu.<\/p>\n<pre><code class=\"language-php\">$table-&gt;string('title');\n$table-&gt;longText('description');<\/code><\/pre>\n<p>Der n\u00e4chste Schritt besteht darin, diese Felder ausf\u00fcllbar zu machen. Erstelle in <strong>app\/Models\/Product<\/strong><strong>.php<\/strong> die ausf\u00fcllbaren Felder <code>title<\/code> und <code>description<\/code>.<\/p>\n<pre><code class=\"language-php\">protected $fillable = ['title', 'description'];<\/code><\/pre>\n\n<h2>Wie man einen Controller erstellt<\/h2>\n<p>Erstelle nun eine Controller-Datei f\u00fcr das Produkt, indem du den folgenden Befehl ausf\u00fchrst. Dadurch wird die Datei <strong>app\/Http\/Controllers\/Api\/ProductController.php<\/strong> erstellt.<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller ApiProductController --model=Product<\/code><\/pre>\n<p>F\u00fcge nun die Logik zum Erstellen und Abrufen der Produkte hinzu. F\u00fcge in der Methode <code>index<\/code> den folgenden Code ein, um alle Produkte abzurufen:<\/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>Danach musst du eine <code>StoreProductRequest<\/code> Klasse hinzuf\u00fcgen, um die neuen Produkte in der Datenbank zu speichern. F\u00fcge die folgende Klasse am Anfang der gleichen Datei hinzu.<\/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>Jetzt erstellst du die Anfrage, indem du den folgenden Befehl ausf\u00fchrst:<\/p>\n<pre><code class=\"language-bash\">php artisan make:request StoreProductRequest<\/code><\/pre>\n<p>Wenn du Validierungen hinzuf\u00fcgen m\u00f6chtest, kannst du die Datei <strong>app\/Http\/Requests\/StoreProductRequest.php<\/strong> verwenden. F\u00fcr diese Demonstration sind keine Validierungen vorgesehen.<\/p>\n<h2>Wie man eine Route erstellt<\/h2>\n<p>Der letzte Schritt vor dem Testen der API ist das Hinzuf\u00fcgen einer Route. Dazu f\u00fcgst du den folgenden Code in die Datei <strong>routes\/api.php<\/strong> ein. F\u00fcge die Anweisung <code>use<\/code> am Anfang der Datei und die Anweisung <code>Route<\/code> im Textk\u00f6rper ein:<\/p>\n<pre><code class=\"language-php\">use AppHttpControllersApiProductController;\nRoute::apiResource('products', ProductController::class);<\/code><\/pre>\n<p>Bevor du mit dem Testen der API beginnst, vergewissere dich, dass die <strong>Produkttabelle<\/strong> in deiner Datenbank vorhanden ist. Wenn sie nicht vorhanden ist, erstelle sie mit einem Control Panel wie XAMPP. Alternativ kannst du auch den folgenden Befehl ausf\u00fchren, um die Datenbank zu migrieren:<\/p>\n<pre><code class=\"language-bash\">php artisan migrate<\/code><\/pre>\n<h2>So testest du eine API<\/h2>\n<p>Bevor du die API testest, stelle sicher, dass die Methode &lt;code&gt;authorize&lt;\/code&gt; in der Datei <strong>app\/Http\/Requests\/StoreProductRequest.php<\/strong> &lt;code&gt;true&lt;\/code&gt; zur\u00fcckgibt.<\/p>\n<p>Jetzt kannst du mit Postman ein neues Produkt erstellen. Beginne, indem du eine <code>POST<\/code> Anfrage an diese URL stellst: <a href=\"http:\/\/127.0.0.1:8000\/api\/products\/\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/127.0.0.1:8000\/api\/products\/<\/a>. Da es sich um eine <code>POST<\/code> Anfrage zur Erstellung eines neuen Produkts handelt, musst du ein JSON-Objekt mit einem Titel und einer Beschreibung \u00fcbergeben.<\/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=\"Ein neues Produkt in Postman erstellen\" width=\"680\" height=\"287\"><figcaption class=\"wp-caption-text\">Ein neues Produkt in Postman erstellen<\/figcaption><\/figure>\n<p>Nachdem du auf die Schaltfl\u00e4che <strong>Senden<\/strong> geklickt hast, solltest du folgendes sehen:<\/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=\"Nachdem du auf Senden geklickt hast\" width=\"572\" height=\"326\"><figcaption class=\"wp-caption-text\">Nachdem du auf Senden geklickt hast<\/figcaption><\/figure>\n<p>Jetzt holst du die erstellten Produkte mit der Anfrage <code>GET<\/code> ab. Die <a href=\"https:\/\/kinsta.com\/de\/blog\/was-ist-eine-url\/\">URL<\/a> ist die gleiche. Die Ergebnisse sehen dann wie folgt aus:<\/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=\"Die Produkte, die mit der GET-Anfrage abgerufen werden\" width=\"792\" height=\"860\"><figcaption class=\"wp-caption-text\">Die Produkte, die mit der GET-Anfrage abgerufen werden<\/figcaption><\/figure>\n<h2>Wie man eine API mit Sanctum authentifiziert<\/h2>\n<p>Die Authentifizierung ist entscheidend f\u00fcr die Sicherung einer API. Laravel macht es dir leicht, indem es die Funktionalit\u00e4t des Sanctum-Tokens bereitstellt, das du als Middleware verwenden kannst. Es sichert die API mit Token, die generiert werden, wenn sich der Nutzer mit den richtigen Anmeldedaten anmeldet. Vergiss nicht, dass die Nutzer ohne Token keinen Zugriff auf die gesicherte API haben.<\/p>\n<p>Der erste Schritt zum Hinzuf\u00fcgen der Authentifizierung ist das Hinzuf\u00fcgen eines Sanctum-Pakets mit dem unten stehenden Code:<\/p>\n<pre><code class=\"language-bash\">composer require laravel\/sanctum<\/code><\/pre>\n<p>Ver\u00f6ffentliche dann die Sanctum-Konfigurationsdatei:<\/p>\n<pre><code class=\"language-bash\">php artisan vendor:publish --provider=\"LaravelSanctumSanctumServiceProvider\"<\/code><\/pre>\n<p>Danach f\u00fcgst du das Token von Sanctum als Middleware hinzu. Verwende in der Datei <strong>app\/Http\/Kernel.php<\/strong> die folgende Klasse und ersetze <code>middlewareGroups<\/code> durch den folgenden Code in der API der gesch\u00fctzten Middleware-Gruppen.<\/p>\n<pre><code class=\"language-php\">use LaravelSanctumHttpMiddlewareEnsureFrontendRequestsAreStateful;<\/code><\/pre>\n<pre><code class=\"language-php\">protected $middlewareGroups = [\n    'web' =&gt; [\n        AppHttpMiddlewareEncryptCookies::class,\n        IlluminateCookieMiddlewareAddQueuedCookiesToResponse::class,\n        IlluminateSessionMiddlewareStartSession::class,\n        \/\/ IlluminateSessionMiddlewareAuthenticateSession::class,\n        IlluminateViewMiddlewareShareErrorsFromSession::class,\n        AppHttpMiddlewareVerifyCsrfToken::class,\n        IlluminateRoutingMiddlewareSubstituteBindings::class,\n    ],\n\n    'api' =&gt; [\n        EnsureFrontendRequestsAreStateful::class,\n        'throttle:api',\n        IlluminateRoutingMiddlewareSubstituteBindings::class,\n    ],\n];<\/code><\/pre>\n<p>Im n\u00e4chsten Schritt erstellst du eine <code>UserController<\/code> und f\u00fcgst den Code hinzu, um das Token f\u00fcr die Authentifizierung zu erhalten.<\/p>\n<pre><code class=\"language-bash\">php artisan make:controller UserController<\/code><\/pre>\n<p>Nachdem du die <code>UserController<\/code> erstellt hast, navigiere zur Datei <strong>app\/Http\/Controllers\/UserController.php<\/strong> und ersetze den vorhandenen Code durch den folgenden Code:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse AppModelsUser;\nuse IlluminateSupportFacadesHash;\nclass UserController extends Controller\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>Bevor du die Authentifizierung testen kannst, musst du einen Benutzer erstellen, der Seeder einsetzt. Der folgende Befehl erstellt eine <strong>UsersTableSeeder<\/strong>-Datei.<\/p>\n<pre><code class=\"language-bash\">php artisan make:seeder UsersTableSeeder<\/code><\/pre>\n<p>Ersetze in der Datei <strong>database\/seeders\/UsersTableSeeder.php<\/strong> den vorhandenen Code durch den folgenden Code, um den Benutzer zu seeden:<\/p>\n<pre><code class=\"language-php\">&lt;?php\n\nnamespace DatabaseSeeders;\n\nuse IlluminateDatabaseSeeder;\nuse IlluminateSupportFacadesDB;\nuse IlluminateSupportFacadesHash;\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>F\u00fchre nun den Seeder mit diesem Befehl aus:<\/p>\n<pre><code class=\"language-bash\">php artisan db:seed --class=UsersTableSeeder<\/code><\/pre>\n<p>Der letzte Schritt im Authentifizierungsablauf besteht darin, die erstellte Middleware zu verwenden, um die Route zu sch\u00fctzen. Navigiere zur Datei <strong>routes\/api.php<\/strong> und f\u00fcge die Route products innerhalb der Middleware hinzu.<\/p>\n<pre><code class=\"language-php\">use AppHttpControllersUserController;\n\nRoute::group(['middleware' =&gt; 'auth:sanctum'], function () {\n    Route::apiResource('products', ProductController::class);\n});\n\nRoute::post(\"login\",[UserController::class,'index']);<\/code><\/pre>\n<p>Nachdem du eine Route zur Middleware hinzugef\u00fcgt hast, bekommst du einen internen Serverfehler, wenn du versuchst, die Produkte abzurufen.<\/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=\"Ein interner Serverfehler nach dem Hinzuf\u00fcgen einer Route\" width=\"1044\" height=\"644\"><figcaption class=\"wp-caption-text\">Ein interner Serverfehler nach dem Hinzuf\u00fcgen einer Route<\/figcaption><\/figure>\n<p>Aber sobald du dich anmeldest, ein Token bekommst und es in der Kopfzeile verwendest, wirst du authentifiziert und kannst arbeiten. Du kannst eine POST-Anfrage an <a href=\"http:\/\/127.0.0.1:8000\/api\/login\" target=\"_blank\" rel=\"noopener noreferrer\">http:\/\/127.0.0.1:8000\/api\/login<\/a> mit folgendem Text senden:<\/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=\"Erfolgreiche Authentifizierung und das Bearer-Token\" width=\"574\" height=\"675\"><figcaption class=\"wp-caption-text\">Erfolgreiche Authentifizierung<\/figcaption><\/figure>\n<p>Verwende das erhaltene Token als Bearer-Token und f\u00fcge es als Authorization-Header hinzu.<\/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=\"Hinzuf\u00fcgen des Bearer-Tokens als Authorization-Header\" width=\"941\" height=\"858\"><figcaption class=\"wp-caption-text\">Hinzuf\u00fcgen des Bearer-Tokens als Authorization-Header<\/figcaption><\/figure>\n<h2>Wie man mit API-Fehlern umgeht<\/h2>\n<p>Jedes Mal, wenn du eine Anfrage an den Server sendest, antwortet er. Mit der Antwort sendet er auch einen <a href=\"https:\/\/kinsta.com\/de\/blog\/http-statuscodes\/\">Statuscode<\/a>, der der Art der Antwort entspricht. Ein 200-Statuscode bedeutet zum Beispiel, dass die Anfrage erfolgreich war, und ein <a href=\"https:\/\/kinsta.com\/de\/blog\/fehlermeldung-404-not-found\/\">404<\/a>-Statuscode bedeutet, dass der Server die angeforderte Ressource nicht finden kann.<\/p>\n<p>Ein Statuscode reicht jedoch nicht aus. Es wird eine f\u00fcr Menschen lesbare Fehlermeldung ben\u00f6tigt. Laravel bietet viele M\u00f6glichkeiten, Fehler zu behandeln. Du kannst einen Try-Catch-Block, die Fallback-Methode oder eine benutzerdefinierte Antwort verwenden. Der folgende Code, den du in <code>UserController<\/code> eingef\u00fcgt hast, demonstriert dies.<\/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>Zusammenfassung<\/h2>\n<p>Mit dem Eloquent Model von Laravel ist es m\u00fchelos m\u00f6glich, APIs zu erstellen, zu validieren und zu testen. Das objektrelationale Mapping bietet einen unkomplizierten Ansatz f\u00fcr die Interaktion mit der Datenbank.<\/p>\n<p>Das Sanctum Token von Laravel fungiert als Middleware und hilft dir, deine APIs schnell zu sichern.<\/p>\n<p>Und wenn du noch mehr Optimierung brauchst, vereinfacht die <a href=\"https:\/\/sevalla.com\/database-hosting\/\">Datenbank-Hosting<\/a>-L\u00f6sung von Kinsta die Einrichtung und Verwaltung von Datenbanken f\u00fcr alle deine Webprojekte.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel Eloquent ist eine einfache M\u00f6glichkeit, mit deiner Datenbank zu interagieren. Es ist ein objektrelationaler Mapper (ORM), der die Komplexit\u00e4t von Datenbanken vereinfacht, indem er ein &#8230;<\/p>\n","protected":false},"author":199,"featured_media":61920,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[958],"class_list":["post-61919","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-laravel"],"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: Erstellen und Testen einer API in Laravel - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.\" \/>\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\/de\/blog\/laravel-api\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Laravel API: Erstellen und Testen einer API in Laravel\" \/>\n<meta property=\"og:description\" content=\"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-19T11:20:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-27T10:14:17+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/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=\"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_DE\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeremy Holcombe\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"8\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\"},\"author\":{\"name\":\"Jeremy Holcombe\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\"},\"headline\":\"Laravel API: Erstellen und Testen einer API in Laravel\",\"datePublished\":\"2023-05-19T11:20:42+00:00\",\"dateModified\":\"2023-07-27T10:14:17+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\"},\"wordCount\":1250,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\",\"url\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\",\"name\":\"Laravel API: Erstellen und Testen einer API in Laravel - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg\",\"datePublished\":\"2023-05-19T11:20:42+00:00\",\"dateModified\":\"2023-07-27T10:14:17+00:00\",\"description\":\"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Laravel\",\"item\":\"https:\/\/kinsta.com\/de\/thema\/laravel\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Laravel API: Erstellen und Testen einer API in Laravel\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/de\/#website\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/de\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/de\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/de\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/\",\"https:\/\/x.com\/Kinsta_DE\",\"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\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21\",\"name\":\"Jeremy Holcombe\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/jeremyholcombe\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Laravel API: Erstellen und Testen einer API in Laravel - Kinsta\u00ae","description":"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.","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\/de\/blog\/laravel-api\/","og_locale":"de_DE","og_type":"article","og_title":"Laravel API: Erstellen und Testen einer API in Laravel","og_description":"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.","og_url":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","article_published_time":"2023-05-19T11:20:42+00:00","article_modified_time":"2023-07-27T10:14:17+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","type":"image\/jpeg"}],"author":"Jeremy Holcombe","twitter_card":"summary_large_image","twitter_description":"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.","twitter_image":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","twitter_creator":"@Kinsta_DE","twitter_site":"@Kinsta_DE","twitter_misc":{"Verfasst von":"Jeremy Holcombe","Gesch\u00e4tzte Lesezeit":"8\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/"},"author":{"name":"Jeremy Holcombe","@id":"https:\/\/kinsta.com\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21"},"headline":"Laravel API: Erstellen und Testen einer API in Laravel","datePublished":"2023-05-19T11:20:42+00:00","dateModified":"2023-07-27T10:14:17+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/"},"wordCount":1250,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/de\/blog\/laravel-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/","url":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/","name":"Laravel API: Erstellen und Testen einer API in Laravel - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","datePublished":"2023-05-19T11:20:42+00:00","dateModified":"2023-07-27T10:14:17+00:00","description":"Lerne, wie du APIs in Laravel testen kannst, indem du ein Modell erstellst, das du zum Aufbau der API in Laravel verwenden kannst.","breadcrumb":{"@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/de\/blog\/laravel-api\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#primaryimage","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/05\/laravel-api.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/de\/blog\/laravel-api\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/de\/"},{"@type":"ListItem","position":2,"name":"Laravel","item":"https:\/\/kinsta.com\/de\/thema\/laravel\/"},{"@type":"ListItem","position":3,"name":"Laravel API: Erstellen und Testen einer API in Laravel"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/de\/#website","url":"https:\/\/kinsta.com\/de\/","name":"Kinsta\u00ae","description":"Schnelle, sichere und hochwertige Hosting-L\u00f6sungen","publisher":{"@id":"https:\/\/kinsta.com\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/de\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/de\/wp-content\/uploads\/sites\/5\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Deutschland-207459890108303\/","https:\/\/x.com\/Kinsta_DE","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\/de\/#\/schema\/person\/4eee42881d7b5a73ebb4f58dd5223b21","name":"Jeremy Holcombe","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/kinsta.com\/de\/#\/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\/de\/blog\/author\/jeremyholcombe\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61919","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/users\/199"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/comments?post=61919"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61919\/revisions"}],"predecessor-version":[{"id":62001,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/posts\/61919\/revisions\/62001"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/translations\/es"},{"href":"https:\/\/kinsta.com\/de\/wp-json\/kinsta\/v1\/posts\/61919\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media\/61920"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/media?parent=61919"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/tags?post=61919"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/de\/wp-json\/wp\/v2\/topic?post=61919"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}