{"id":331,"date":"2024-06-27T12:51:18","date_gmt":"2024-06-27T12:51:18","guid":{"rendered":"https:\/\/alexpadulles.es\/blog\/?p=331"},"modified":"2024-11-06T22:44:39","modified_gmt":"2024-11-06T22:44:39","slug":"creando-una-api-con-laravel-11","status":"publish","type":"post","link":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/","title":{"rendered":"Creando una API con laravel 11"},"content":{"rendered":"<p>Con esta actuaizaci\u00f3n API Laravel 11 ofrece herramientas para crear y gestionar APIs m\u00e1s eficientemente, simplificando la autenticaci\u00f3n, autorizaci\u00f3n y optimizando las solicitudes y respuestas , si ya era una herramienta potente anteriormente a esta actualizaci\u00f3n, ahora se hace m\u00e1s fuerte tras este update, hemos analizado y <a href=\"https:\/\/alexpadulles.es\/blog\/laravel-11\/\" target=\"_blank\" rel=\"noopener\">testeado los nuevos cambios<\/a>. <strong>Creando una api con laravel 11<\/strong> en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto en vuestra forma de crear c\u00f3digo. Antes de iniciar con la creaci\u00f3n de endpoints, necesitas tener un proyecto Laravel configurado. La instalaci\u00f3n b\u00e1sica se realiza con Composer:<\/p>\n<p><code>composer create-project --prefer-dist laravel\/laravel my-api-project<\/code><\/p>\n<p>\u00bfNecesitas un\u00a0<strong>programador\u00a0<\/strong>?\u00a0<a href=\"https:\/\/alexpadulles.es\/#contact\" target=\"_blank\" rel=\"noopener\">Contacta conmigo<\/a><\/p>\n<h2>Creando una API con laravel 11: Configurar el Ruteo de la API<\/h2>\n<p>Laravel usa el archivo <code>routes\/api.php<\/code> para definir rutas especialmente destinadas a la API.<\/p>\n<pre><code>use Illuminate\\Http\\Request; use Illuminate\\Support\\Facades\\Route; \r\n        Route::middleware('auth:sanctum')-&gt;get('\/user', function (Request $request) {\r\n            return $request-&gt;user();\r\n        });\r\n    <\/code><\/pre>\n<p>Esta configuraci\u00f3n viene por defecto en Laravel 11 para obtener informaci\u00f3n de un usuario autenticado. M\u00e1s informac\u00edon en la documentaci\u00f3n oficial de <a href=\"https:\/\/laravel.com\/docs\/11.x\/readme\" target=\"_blank\" rel=\"noopener\">laravel<\/a><\/p>\n<h2>Creando una API con laravel 11: Creaci\u00f3n de Controladores<\/h2>\n<p>Para manejar las solicitudes Al crear una API con laravel 11, necesitar\u00e1s controladores. Laravel ofrece una manera sencilla de crearlos mediante Artisan:<\/p>\n<p><code>php artisan make:controller Api\/UserController<\/code><\/p>\n<p>Dentro del controlador, define m\u00e9todos para manejar diferentes tipos de solicitudes HTTP como GET, POST, PUT y DELETE.<\/p>\n<pre><code>namespace App\\Http\\Controllers\\Api;\r\n        use App\\Http\\Controllers\\Controller;\r\n        use Illuminate\\Http\\Request;\r\n\r\n        class UserController extends Controller {\r\n            public function index() { \/* l\u00f3gica para listar usuarios *\/ }\r\n            public function store(Request $request) { \/* l\u00f3gica para crear un nuevo usuario *\/ }\r\n            public function show($id) { \/* l\u00f3gica para mostrar un usuario espec\u00edfico *\/ }\r\n            public function update(Request $request, $id) { \/* l\u00f3gica para actualizar un usuario existente *\/ }\r\n            public function destroy($id) { \/* l\u00f3gica para eliminar un usuario *\/ }\r\n        }\r\n    <\/code><\/pre>\n<h2>Creando una API con laravel 11: Definir Rutas de API<\/h2>\n<p>Asocia las rutas API a los m\u00e9todos del controlador en <code>routes\/api.php<\/code>.<\/p>\n<pre><code>use App\\Http\\Controllers\\Api\\UserController; \r\n        Route::get('\/users', [UserController::class, 'index']); \r\n        Route::post('\/users', [UserController::class, 'store']); \r\n        Route::get('\/users\/{id}', [UserController::class, 'show']); \r\n        Route::put('\/users\/{id}', [UserController::class, 'update']); \r\n        Route::delete('\/users\/{id}', [UserController::class, 'destroy']);\r\n    <\/code><\/pre>\n<h3>Validaci\u00f3n y Autenticaci\u00f3n<\/h3>\n<p>Laravel facilita la validaci\u00f3n y autenticaci\u00f3n de solicitudes. Utiliza <code>FormRequest<\/code> para validar las solicitudes entrantes.<\/p>\n<pre><code>namespace App\\Http\\Requests; \r\n        use Illuminate\\Foundation\\Http\\FormRequest;\r\n\r\n        class StoreUserRequest extends FormRequest { \r\n            public function rules() { \r\n                return [ \r\n                    'name' =&gt; 'required|string', \r\n                    'email' =&gt; 'required|email|unique:users,email', \r\n                ]; \r\n            } \r\n        }\r\n    <\/code><\/pre>\n<p>Inyecta la clase <code>StoreUserRequest<\/code> en tu controlador para validar autom\u00e1ticamente.<\/p>\n<pre><code>public function store(StoreUserRequest $request) { \r\n        $validated = $request-&gt;validated(); \r\n        \/\/ l\u00f3gica para crear un nuevo usuario \r\n    }\r\n    <\/code><\/pre>\n<p>Para la autenticaci\u00f3n, Laravel Sanctum es una opci\u00f3n popular. Instalable con:<\/p>\n<p><code>composer require laravel\/sanctum<\/code><\/p>\n<p>Configura el middleware <code>auth:sanctum<\/code> para proteger las rutas:<\/p>\n<pre><code>Route::middleware('auth:sanctum')-&gt;get('\/user', function (Request $request) { \r\n        return $request-&gt;user(); \r\n    });\r\n    <\/code><\/pre>\n<h1>Conclusi\u00f3n<\/h1>\n<p>Al crear una API con laravel 11 hace que la creaci\u00f3n de API endpoints sea f\u00e1cil y eficiente gracias a su estructura clara y potentes herramientas como Artisan, middleware de autenticaci\u00f3n y validaci\u00f3n de solicitudes. \u00a1Sigue estos pasos y tendr\u00e1s una API robusta en poco tiempo!<\/p>\n<p>&nbsp;<\/p>\n<h3>Contacto<\/h3>\n<p>Si necesitas servicios de desarrollo para tu empresa , estoy aqu\u00ed para ayudarte. Ofrezco soluciones personalizadas y de alta calidad para satisfacer tus necesidades. Para m\u00e1s informaci\u00f3n o para discutir tu proyecto, cont\u00e1ctame a traves del siguiente bot\u00f3n<\/p>\n<button translate=\"no\" class=\"btg-button btg-button-1\" data-btnid=\"1\" data-url=\"https:\/\/alexpadulles.es\/#contact\" data-action=\"link\" data-target=\"_self\">Contacta con nosotros<span class=\"fas fa-message btg-icon \"><\/span><\/button>\n","protected":false},"excerpt":{"rendered":"<p>Con esta actuaizaci\u00f3n API Laravel 11 ofrece herramientas para crear y gestionar APIs m\u00e1s eficientemente, simplificando&#8230;<\/p>\n","protected":false},"author":1,"featured_media":332,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[121,120],"class_list":["post-331","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","tag-apis","tag-laravel-11"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Creando una API con laravel 11 - Blog Desarrrollo web Alex Padulles<\/title>\n<meta name=\"description\" content=\"Creando una api con laravel 11 en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creando una API con laravel 11 - Blog Desarrrollo web Alex Padulles\" \/>\n<meta property=\"og:description\" content=\"Creando una api con laravel 11 en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto\" \/>\n<meta property=\"og:url\" content=\"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Desarrrollo web Alex Padulles\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-27T12:51:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-11-06T22:44:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex Padull\u00e9s\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@alexpadulles\" \/>\n<meta name=\"twitter:site\" content=\"@alexpadulles\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Padull\u00e9s\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creando una API con laravel 11 - Blog Desarrrollo web Alex Padulles","description":"Creando una api con laravel 11 en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto","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:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/","og_locale":"es_ES","og_type":"article","og_title":"Creando una API con laravel 11 - Blog Desarrrollo web Alex Padulles","og_description":"Creando una api con laravel 11 en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto","og_url":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/","og_site_name":"Blog Desarrrollo web Alex Padulles","article_published_time":"2024-06-27T12:51:18+00:00","article_modified_time":"2024-11-06T22:44:39+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png","type":"image\/png"}],"author":"Alex Padull\u00e9s","twitter_card":"summary_large_image","twitter_creator":"@alexpadulles","twitter_site":"@alexpadulles","twitter_misc":{"Written by":"Alex Padull\u00e9s","Est. reading time":"2 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#article","isPartOf":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/"},"author":{"name":"Alex Padull\u00e9s","@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"headline":"Creando una API con laravel 11","datePublished":"2024-06-27T12:51:18+00:00","dateModified":"2024-11-06T22:44:39+00:00","mainEntityOfPage":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/"},"wordCount":385,"commentCount":0,"publisher":{"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"image":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#primaryimage"},"thumbnailUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png","keywords":["APIS","Laravel 11"],"articleSection":["laravel"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/","url":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/","name":"Creando una API con laravel 11 - Blog Desarrrollo web Alex Padulles","isPartOf":{"@id":"https:\/\/alexpadulles.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#primaryimage"},"image":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#primaryimage"},"thumbnailUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png","datePublished":"2024-06-27T12:51:18+00:00","dateModified":"2024-11-06T22:44:39+00:00","description":"Creando una api con laravel 11 en modo de ejemplo podeis testear los nuevos cambios y hacer m\u00e1s fuerte este punto","breadcrumb":{"@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#primaryimage","url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png","contentUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/laravel-1.png","width":1200,"height":675,"caption":"Laravel 11 APIS"},{"@type":"BreadcrumbList","@id":"https:\/\/alexpadulles.es\/blog\/creando-una-api-con-laravel-11\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/alexpadulles.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Creando una API con laravel 11"}]},{"@type":"WebSite","@id":"https:\/\/alexpadulles.es\/blog\/#website","url":"https:\/\/alexpadulles.es\/blog\/","name":"Desarrollor web Alex padulles","description":"Bienvenidos a mi blog, tu portal de referencia en tecnolog\u00eda. Con a\u00f1os de experiencia en programaci\u00f3n y desarrollo web, ofrecemos soluciones innovadoras y personalizadas para todos tus proyectos digitales.","publisher":{"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/alexpadulles.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/alexpadulles.es\/blog\/#\/schema\/person\/e32cd17cd5729478d074e4fdb3212e32","name":"Alex Padull\u00e9s","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","url":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","contentUrl":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png","width":602,"height":481,"caption":"Alex Padull\u00e9s"},"logo":{"@id":"https:\/\/alexpadulles.es\/blog\/wp-content\/uploads\/2024\/06\/cropped-openart-image_JlFoPIny_1718750114835_raw.png"},"sameAs":["https:\/\/alexpadulles.es\/blog","https:\/\/x.com\/alexpadulles"]}]}},"_links":{"self":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/331","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/comments?post=331"}],"version-history":[{"count":5,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/331\/revisions"}],"predecessor-version":[{"id":668,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/posts\/331\/revisions\/668"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/media\/332"}],"wp:attachment":[{"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/media?parent=331"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/categories?post=331"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alexpadulles.es\/blog\/wp-json\/wp\/v2\/tags?post=331"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}