Curso Carrito de Compra en Kotlin
API REST en Laravel para Carrito de Compras con Kotlin
Aprende a crear una API REST en Laravel para manejar productos y categorías en un carrito de compras, diseñada para integrarse con aplicaciones móviles desarrolladas en Kotlin. En este curso, exploraremos cómo construir endpoints eficientes para gestionar datos de productos y categorías.
En esta lección, mostraremos los endpoints para gestionar datos de productos y categorías, y cómo consumirlos desde una app Kotlin utilizando Retrofit.
Laravel será el framework backend para crear la API REST que gestionará la información del bazar. La API proporcionará endpoints para:
Modelo Product
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Product extends Model
{
use HasFactory;
protected $fillable =[
'name',
'description',
'price',
'stock',
'unit',
'image'
];
public function category(): BelongsTo
{
return $this->belongsTo(Category::class);
}
}
Modelo Category
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
protected $fillable =[
'name',
'image'
];
public function products(): HasMany
{
return $this->hasMany(Product::class);
}
}
Abrir el archivo routes/api.php
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\Api\JsonController;
Route::get('products', [JsonController::class,"products"]);
Route::get('categories', [JsonController::class,"categories"]);
Este fragmento de código de Laravel define las rutas para una API que proporciona datos sobre productos y categorías, los cuales son manejados por el controlador JsonController
. Estas rutas permiten que una aplicación cliente, como una app en Kotlin para un carrito de compras, haga solicitudes HTTP para obtener estos datos.
Ruta para productos (/products
):
Route::get('products', [JsonController::class,"products"]);
Esta ruta responde a solicitudes GET en la URL /products
.
products()
del JsonController
.products()
retorna una lista de productos en formato JSON, lo cual permite que la app cliente obtenga los productos desde la base de datos.Ruta para categorías (/categories
):
Route::get('categories', [JsonController::class,"categories"]);
Esta ruta responde a solicitudes GET en la URL /categories
.
categories()
del JsonController
.categories()
devuelve todas las categorías en formato JSON, permitiendo que la app cliente las use para clasificar o filtrar los productos./products
y /categories
) sería llamada para obtener los datos, que luego pueden ser mostrados en la app en listas o grillas, permitiendo al usuario ver los productos y categorías del carrito de compras.
namespace App\Http\Controllers\Api;
use App\Models\Category;
use App\Models\Product;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class JsonController extends Controller
{
public function categories(){
$categories = Category::all();
return response()->json($categories, 200);
}
public function products(){
$products = Product::get(["id","name","description","price","stock","unit","image","category_id"]);
return response()->json($products, 200);
}
}
Este código de Laravel pertenece a un controlador API (JsonController
) que se utiliza para proporcionar datos en formato JSON, que pueden ser consumidos por una aplicación de carrito de compras en Kotlin. El controlador gestiona las solicitudes relacionadas con categorías y productos, probablemente para mostrarlos en la app.
categories()
:
Category
.
php
public function categories(){ $categories = Category::all(); return response()->json($categories, 200); }
Category::all()
recupera todas las filas de la tabla categories
en la base de datos.products()
:
id
, name
, description
, price
, stock
, unit
, image
y category_id
.
php
public function products(){ $products = Product::get(["id","name","description","price","stock","unit","image","category_id"]); return response()->json($products, 200); }
Product::get()
filtra los campos específicos que se necesitan del modelo Product
.La app en Kotlin puede realizar solicitudes HTTP a estos endpoints para obtener los datos de categorías y productos. Los datos JSON se pueden parsear en modelos o clases de datos (como Category
y Product
) en la app, facilitando la creación de la interfaz de usuario del carrito de compras.
65 visitas
« Capítulo 1 – Proyecto, Mockups y Entorno de desarrollo
Capítulo 3 – Creación del Proyecto Android y Dependencias »
© Copyright Codea App | LATAM | 2020 - 2024