API RESTful con el Framework Laravel

API RESTful con el Framework Laravel

¿Qué es API?

La sigla API significa: Application Programming Interface, es una interfaz informática que define las interacciones entre los múltiples intermediarios de software. Es una forma de interactuar mediante programación con un componente o recurso de software independiente.

¿Qué es REST?

REST es un acrónimo de RE presentational S tate T ransfer. Este término fue acuñado por Roy Fielding en 2000. Es un estilo de arquitectura para el diseño de aplicaciones poco acopladas a través de HTTP, que se utiliza a menudo en el desarrollo de servicios web.

REST define 6 restricciones arquitectónicas que hacen de cualquier servicio web una verdadera API RESTful.

  1. Cliente-servidor: al separar la interfaz de usuario del almacenamiento de datos, mejoramos la portabilidad de la interfaz de usuario en múltiples plataformas y mejoramos la escalabilidad al simplificar los componentes del servidor.
  2. Sin estado : cada solicitud del cliente al servidor debe contener toda la información necesaria para comprender la solicitud y no puede aprovechar ningún contexto almacenado en el servidor. Por lo tanto, el estado de la sesión se mantiene completamente en el cliente.
  3. Almacenable en caché: las restricciones de caché requieren que los datos dentro de una respuesta a una solicitud se etiqueten implícita o explícitamente como almacenables en caché o no almacenables en caché. Si una respuesta se puede almacenar en caché, la caché de un cliente tiene derecho a reutilizar los datos de la respuesta para solicitudes posteriores equivalentes.
  4. Interfaz uniforme : al aplicar el principio de generalidad a la interfaz del componente, se simplifica la arquitectura general del sistema y se mejora la visibilidad de las interacciones.
  5. Sistema en capas: el estilo de sistema en capas permite que una arquitectura se componga de capas jerárquicas al restringir el comportamiento de los componentes de manera que cada componente no pueda «ver» más allá de la capa inmediata con la que están interactuando.
  6. Código a pedido (opcional) : REST permite ampliar la funcionalidad del cliente descargando y ejecutando código en forma de subprogramas o scripts. Esto simplifica a los clientes al reducir la cantidad de funciones que se deben implementar previamente.

Los consumidores de nuestra API podrán realizar algunas tareas limitadas. Habría los siguientes puntos finales:

Puntos finales de API para la ruta no autenticada

Relacionados con la categoría:

  • Obtener todas las categorías GET /categories
  • Obtener todas las publicaciones de una categoría GET /categories/{id}/posts
  • Obtener todas las publicaciones GET /posts
  • Obtener una publicación por identificación GET /posts/{id}
  • Obtener todos los comentarios de una publicación GET /posts/{id}/comments
  • Obtener detalles de un autor GET /authors/{id}
  • Obtener todas las publicaciones de un autor GET /authors/posts
  • Obtener todos los comentarios de un autor GET /authors/{id}/comments
  • Obtener todas las publicaciones de una etiqueta GET /tags/{id}/posts
  • Registrar un usuarioPOST /register
  • Iniciar sesión el usuarioPOST /login
  • Se te olvidó tu contraseña POST /forgot-password

Relacionado con el comentario:

  • Comentario del usuario de la tienda POST /comments/posts/{id}
  • Cerrar la sesión del usuarioPOST /logout
  • Actualiza contraseña POST /update-password

Debe crear recursos de API , controladores y rutas de API para los puntos finales de API mencionados anteriormente.

Paso 1 : primero creemos recursos de API . Para hacerlo, siga los pasos que se mencionan a continuación (no olvide implementar la parte Migración y Relación ):

Al crear una API, es posible que necesite una capa de transformación que se encuentre entre sus modelos Eloquent y las respuestas JSON que realmente se devuelven a los usuarios de su aplicación. Las clases de recursos de Laravel le permiten transformar de manera expresiva y sencilla sus modelos y colecciones de modelos en JSON.

Ejecute el comando php artisan make:resource CategoryResource. Se creará CategoryResourceen el app\Http\Resourcesdirectorio.

Abra este archivo y devuelva los datos deseados, por ejemplo. category_iden lugar de id. Puede hacer mucho más que enmascarar los nombres de los campos o la cantidad de campos que se devolverán, como podemos devolver información adicional con API, etc.

public function toArray($request)
{
    return [
        'category_id' => $this->id,
        'category_title' => $this->title,
        'category_color' => $this->color,
    ];
}

// (Optional) Additional code is attached to the response

public function with($request)
{
    return [
        'version' => "1.0.0",
        'author_url' => "https://ingenierofernandoperez.com"
    ];
}

Paso 2 : la siguiente actividad es crear los controladores necesarios. Para hacerlo, siga los pasos a continuación:
Ejecute el comando php artisan make:controller Api\\CategoryApiController. Se creará CategoryApiControlleren el app\Http\Controllers\Apidirectorio. Abra ese archivo y escriba los métodos para realizar acciones.

public function index()
{
    $categories = Category::all();
    
    return CategoryResource::collection($categories);
}


public function posts($id)
{
    $posts = Post::where('category_id', $id)->orderBy('id', 'desc')->paginate();
    
    return PostResource::collection($posts);
}

El indexmétodo devolverá todas las categorías envueltas dentro CategoryResource.

El postsmétodo devolverá todas las publicaciones que pertenecen a una categoría específica dentro PostResource.

De la misma manera a crear los métodos deseados en CommentApiControllerPostApiControllerTagApiController, y UserApiControllero repositorio de pago y envío.

Paso 3 : El último paso es crear rutas para la API. Proceder alroutesdirectorio y abrir elapi.phparchivo y crear los puntos finales de API que hará referencia a los métodos creados enCategoryApiController,CommentApiController,PostApiController,TagApiController, yUserApiController.

<?php
use App\Http\Controllers\Api\CategoryApiController;
use App\Http\Controllers\Api\CommentApiController;
use App\Http\Controllers\Api\PostApiController;
use App\Http\Controllers\Api\TagApiController;
use App\Http\Controllers\Api\UserApiController;
use Illuminate\Support\Facades\Route;

Route::post('registration', [UserApiController::class, 'store']);
Route::post('login', [UserApiController::class, 'login']);
Route::post('forgot-password', [UserApiController::class, 'forgotPassword']);
Route::get('authors/{id}', [UserApiController::class, 'show']);
Route::get('authors/{id}/posts', [UserApiController::class, 'posts']);
Route::get('authors/{id}/comments', [UserApiController::class, 'comments']);
Route::get('categories', [CategoryApiController::class, 'index']);
Route::get('categories/{id}/posts', [CategoryApiController::class, 'posts']);
Route::get('posts', [PostApiController::class, 'index']);
Route::get('posts/{id}', [PostApiController::class, 'show']);
Route::get('posts/{id}/comments', [PostApiController::class, 'comments']);
Route::get('tags/{id}/posts', [TagApiController::class, 'posts']);
Route::middleware('auth:sanctum')-&gt;group(function () {
Route::post('comments/posts', [CommentApiController::class, 'store']);
Route::post('logout', [UserApiController::class, 'logout']);
Route::post('update-password',[UserApiController::class, 'updatePassword']);
});

Inicie la base de datos y ejecute el php artisan servecomando. El servidor de desarrollo de Laravel se iniciaráhttp://127.0.0.1:8000

Abra Postman y pruebe todas las rutas definidas en api.php, pero asegúrese de agregar su ruta con/api/ 

Para obtener todas las categorías, debe enviar una GETsolicitud ahttp://127.0.0.1:8000/api/categories

Respuesta de devolución de API RESTful

Ahora probemos authenticated routetambién. Solo hay una ruta autenticada para almacenar comentarios de usuarios registrados en una publicación.

Estamos utilizando Laravel Sanctum para autenticación y autorización. Emitiremos un token de API y lo usaremos en Postman para autenticar la solicitud.

Laravel Sanctum proporciona un sistema de autenticación ligero para SPA (aplicaciones de una sola página), aplicaciones móviles y API simples basadas en tokens. Sanctum permite que cada usuario de su aplicación genere múltiples tokens API para su cuenta. A estos tokens se les pueden otorgar habilidades / alcances que especifican qué acciones pueden realizar los tokens.

Para utilizar un token de API, ejecutaremos el comando tinker

php artisan tinker

Ahora nos permitirá interactuar con la aplicación Laravel desde la línea de comandos. Aquí debe crear un token de API para un usuario que usa el createToken()método.

Copiar plainTextToken, para usar en Postman.

Ahora abra Postman y haga lo siguiente:

  • Nueva POSTsolicitud ahttp://127.0.0.1:8000/api/comments/posts
  • En Authorizationla pestaña seleccione Typecomo Bearer Tokeny pegar el plainTextTokenen Tokencuadro de texto.
  • Luego en la Headerspestaña Keycomo AcceptValuecomo application/json.
  • Luego, en la Bodypestaña, seleccione form-datael botón de radio y Key, en , Valueescriba id– 159commentTesting some comment on post 159
  • Ahora presiona el sendbotón y obtendrás el comentario recién creado.

Tipo de autorización: token de portador
Encabezado – Aceptar – aplicación / json
Cuerpo – formulario-datos
Respuesta exitosa después de insertar un comentario

El código fuente está disponible en https://github.com/mdutt247/laravel-news para que te refieras.

122 comentarios de “API RESTful con el Framework Laravel

  1. Sazriyr dice:

    Всегда думал что купить диплом о высшем образовании это миф и нереально, но все оказалось не так, изначально искал информацию про: купить диплом в чите, купить диплом маникюру, купить диплом в калининграде, купить диплом в улан, купить диплом в улан удэ, потом про дипломы вузов, подробнее здесь diplomybox.com/kupit-diplom-spetsialista-v-ulyanovske

  2. EarnestInvep dice:

    This is the right site for anyone who wants to find out about this topic. You understand a whole lot its almost tough to argue with you (not that I actually would want to…HaHa). You definitely put a fresh spin on a topic which has been discussed for decades. Great stuff, just wonderful!

    снятие ломки наркомана

  3. Kennethkiz dice:

    戰神賽特
    「戰神賽特」— 2025年最火爆的老虎機,等你來挑戰!
    如果你正在尋找一款高賠率、刺激又充滿神秘感的老虎機遊戲,那麼「戰神賽特」絕對是你的最佳選擇!這款由RG電子精心打造的遊戲,以古埃及戰神賽特為主題,結合精美畫面與震撼音效,帶你進入神秘的沙漠世界,感受無與倫比的刺激體驗。
    為何玩家瘋狂愛上戰神賽特?
    超狂賠率 51,000 倍:一轉瞬間,財富翻倍不是夢
    高RTP達96.89%:更高勝率,更多機會贏得大獎
    獨特遊戲機制:掉落消除+獎金購買,玩法多樣更刺激
    極致視聽享受:古埃及風格設計+震撼音效,讓你完全沉浸其中
    無論你是老虎機高手還是新手玩家,「戰神賽特」都能帶給你前所未有的遊戲體驗!快來挑戰戰神,贏取屬於你的豐厚獎勵!

  4. TrevorEnern dice:

    Магазин печей и каминов https://pech.pro широкий выбор дровяных, газовых и электрических моделей. Стильные решения для дома, дачи и бани. Быстрая доставка, установка и гарантия качества!

  5. IsmaelFoeld dice:

    свежая сводка новостей – ваш надежный источник актуальных новостей! Мы оперативно освещаем события политики, экономики, технологий, спорта и культуры. Всегда свежие материалы, объективные аналитические обзоры и эксклюзивные интервью. Будьте в курсе главного – следите за новостями вместе с нами!

  6. BMW_zwpa dice:

    BMW X6: идеально для активной жизни, откройте для себя.
    BMW X6: динамика и комфорт, водителей.
    инновации.
    Брутальный внешний вид BMW X6, порадует.
    Как BMW X6 меняет правила игры, откройте.
    Кроссовер BMW X6, который стоит выбрать, в стиль.
    Комфортабельный интерьер BMW X6, уникальный стиль.
    Незаменимый помощник на дороге – BMW X6, гарантирует.
    Причины популярности BMW X6, в нашем анализе.
    Спортивный характер BMW X6, любой.
    Надежность и безопасность BMW X6, неукоснительно.
    Почему BMW X6 – это лучшее решение, новые горизонты.
    Инновации в BMW X6, улучшают.
    Как BMW X6 спроектирован для вашего комфорта, узнайте.
    Что дает вам BMW X6?, в нашем анализе.
    BMW X6: стиль, который невозможно не заметить, подчеркнет ваш статус.
    Сравните BMW X6 с конкурентами, в нашем отчете.
    Мнения о BMW X6 от реальных пользователей, в нашем разделе.
    Как BMW X6 обеспечивает безопасность, защитят вас.
    Итоги: BMW X6, как лучший выбор, предлагаем выводы.
    x4 bmw https://bmw-x6.biz.ua/ .

  7. Carlostaiff dice:

    Строительные бытовки
    Контейнеры и временные конструкции: эффективное подход для личных проблем
    Модули и модульные здания способствуют организовать рабочее пространство, хранилище или временную постройку. Мы поставляем объекты, которые подходят профессиональным нормам долговечности и удобства.

    Параметры
    Надёжность. Каждая модули изготовлены из компонентов, прочных к воздействию и погодным условиям.
    Скорость доставки. Объект доставляется в срок 1–2 календарных дней после подтверждения заявки.
    Персонализация. Осуществляется компоновка дополнительной теплоизоляции, электропроводки или приточной системы.
    Области применения
    На строительных объектах для организации склада или оборудования места для персонала.
    Во время мероприятий для организации стойки приёма или хранилища техники.
    В качестве временных офисов или пунктов управления.
    Достоинства
    Экономия времени. Не требуется возводить временные сооружения.
    Комфорт. Обстановка, которые повышают результативность действий работников.
    Адаптивность. Шанс краткосрочного пользования или постоянного владения под индивидуальные нужды и бюджет.
    Практический пример
    Строительная компания использовала передвижной модуль для создания хранилища и зоны отдыха. Конструкция была доставлена за день, с усиленной теплоизоляцией. Заказчик обратил внимание на улучшение условий работы и сокращение простоя.

    Как оформить заказ
    Для оформления заказа нужно связаться с нами. Дадим всю необходимую информацию, содействуем найти идеальный выбор и проведём перевозку.

  8. Melvinhoony dice:

    1Block Casino: Full Platform Overview
    1Block Casino is a modern gaming platform that offers a wide range of gambling entertainment for players worldwide. From classic slots to unique games like Plinko, the service provides everything needed for gambling enthusiasts. Let’s take a closer look at the main features of the platform, game categories, and key advantages.

    Game Categories
    1Block Casino boasts an extensive collection of games divided into several categories:

    Originals
    This section features exclusive games developed specifically for the platform. It’s a great choice for those seeking a unique gaming experience.
    Slots
    Classic and modern slots with various themes, bonuses, and mechanics are available here. Whether you prefer traditional fruit machines or innovative video slots, there’s something for everyone.
    Live Games
    Immerse yourself in the atmosphere of a real casino with live dealer games. These games are streamed in real-time, offering an authentic experience with professional dealers.
    Fishing Games
    A unique category that combines gambling with interactive gameplay. Fishing games are gaining popularity due to their engaging mechanics and potential for big wins.
    Poker
    Test your skills against other players in various poker formats. The platform offers both traditional and fast-paced poker games.
    Esports Betting
    Bet on your favorite esports teams and tournaments. This section caters to fans of competitive gaming who want to add excitement to their matches.
    Lucky Bets and High Rollers
    1Block Casino caters to all types of players, from casual gamers to high rollers. The Lucky Bets section highlights random wins, while the High Rollers section showcases impressive payouts from large bets. Whether you’re betting small or large amounts, the platform ensures fair play and exciting opportunities.

    Our Community and Partnerships
    1Block Casino values its community and collaborates with trusted partners to enhance the gaming experience. The platform proudly works with leading providers, ensuring top-quality games and services for its users.

    Legal Information
    1Block Casino is owned and operated by JogoMaster Limited, a company registered under number 15748. The company’s registered address is located in Hamchako, Mutsamudu, Autonomous Island of Anjouan, Union of Comoros.

    The platform is licensed and regulated by the Gaming Board of Anjouan (License No. ALSI-152406032-FI3). 1Block has passed all regulatory compliance checks and is legally authorized to conduct gaming operations for all games of chance and wagering.

    Why Choose 1Block Casino?
    Diverse Game Selection : From slots to live games, there’s something for every type of player.
    Transparency : All bets and payouts are clearly displayed, ensuring trust and fairness.
    Crypto-Friendly : The platform supports cryptocurrency transactions, making it convenient for modern players.
    Licensed and Regulated : With a valid license from the Gaming Board of Anjouan, players can enjoy a secure and legal gaming experience.
    Whether you’re a fan of classic casino games or looking to explore unique options like Plinko, 1Block Casino offers a comprehensive and enjoyable platform for all gambling enthusiasts.

  9. Mazrikc dice:

    Мы изготавливаем дипломы любой профессии по разумным ценам. Всегда стараемся поддерживать для покупателей адекватную политику тарифов. Для нас важно, чтобы документы были доступными для большинства наших граждан.
    Заказ документа, подтверждающего окончание ВУЗа, – это выгодное решение. Заказать диплом любого университета: kupit-diplomyz24.com/kak-kupit-diplom-4/

  10. Sazrwmm dice:

    Хорошо быть студентом, пока не придет пора писать диплом, что и произошло со мной, но не стоит отчаиваться, ведь есть хорошие компании что помогают с написанием и сдачей диплома на хорошие оценки!
    Изначально искал информацию про купить диплом высшее в челябинске, купить диплом колледжа в нижнем тагиле, купить диплом о высшем в улан удэ, купить диплом пищевого, купить диплом ржд, потом попал на diplomybox.com/kupit-diplom-volzhsk

  11. Cazrqcw dice:

    Здравствуйте!
    Без присутствия диплома очень сложно было продвигаться по карьерной лестнице. Сегодня же этот документ не дает никаких гарантий, что удастся найти престижную работу. Намного более важны навыки и знания специалиста и его опыт. В связи с этим решение о покупке диплома можно считать мудрым и целесообразным. Заказать диплом о высшем образовании 133636.activeboard.com/forum.spark

  12. Xazrbqm dice:

    Приобрести диплом о высшем образовании!
    Мы изготавливаем дипломы любых профессий по приятным ценам. Вы заказываете диплом через надежную и проверенную временем компанию. : ozmt.getbb.ru/ucp.php?mode=login

  13. Dnrtkym dice:

    Где купить диплом по актуальной специальности?
    Мы изготавливаем дипломы любой профессии по приятным ценам. Мы готовы предложить документы ВУЗов, которые расположены на территории всей России. Вы сможете приобрести качественный диплом за любой год, включая сюда документы старого образца. Дипломы и аттестаты печатаются на бумаге самого высшего качества. Это дает возможность делать настоящие дипломы, не отличимые от оригинала. Документы заверяются всеми обязательными печатями и подписями. Всегда стараемся поддерживать для клиентов адекватную ценовую политику. Для нас очень важно, чтобы документы были доступны для большого количества граждан. peoplediplom.ru/kupit-diplom-v-rostove-na-donu-2-6

  14. Mazrhqt dice:

    Где купить диплом специалиста?
    Готовый диплом с нужными печатями и подписями отвечает запросам и стандартам, неотличим от оригинала. Не следует откладывать личные мечты и задачи на несколько лет, реализуйте их с нашей компанией – отправляйте быструю заявку на диплом уже сегодня! Получить диплом о среднем образовании – легко! diplomass.com/kupit-attestat-o-srednem-spetsialnom-obrazovanii-bistro/

  15. Sazrbcp dice:

    Покупка документа о высшем образовании через качественную и надежную компанию дарит массу преимуществ. Данное решение дает возможность сэкономить как продолжительное время, так и серьезные средства. Впрочем, только на этом выгоды не ограничиваются, достоинств значительно больше.Мы изготавливаем дипломы любых профессий. Дипломы изготавливаются на подлинных бланках государственного образца. Доступная цена в сравнении с огромными издержками на обучение и проживание. Заказ диплома о высшем образовании из российского ВУЗа будет мудрым шагом.
    Заказать диплом: asxdiploman.com/diplom-kupit-v-rostove-2/

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Nuestro equipo de atención al cliente está aquí para responder a tus preguntas. ¡Pregúntanos cualquier cosa!
Este sitio utiliza cookies para ofrecerle una mejor experiencia de navegación. Al navegar por este sitio web, acepta nuestro uso de cookies.