dart_fake_store_api_wrapper

Creator: coderz1093

Last updated:

0 purchases

dart_fake_store_api_wrapper Image
dart_fake_store_api_wrapper Images

Languages

Categories

Add to Cart

Description:

dart fake store api wrapper

Dart Fake Store API Wrapper #


Una biblioteca de Dart para interactuar con la Fake Store API. Este paquete proporciona una forma sencilla de realizar operaciones CRUD en productos y carritos de compra.
Características= #

Obtener productos: Lista todos los productos disponibles.
Obtener un solo producto: Obtiene detalles de un producto por su ID.
Enviar productos al carrito: Agrega productos a un carrito de compra.

Instalación #
Agrega la dependencia a tu archivo pubspec.yaml:
dependencies:
dart_fake_store_api_wrapper: ^0.0.4
copied to clipboard
Luego, ejecuta:
dart pub get
copied to clipboard
Uso Básico #
A continuación, se muestra un ejemplo de cómo usar el paquete para obtener productos, obtener un solo producto y enviar productos al carrito.
import 'package:dart_fake_store_api_wrapper/dart_fake_store_api_wrapper.dart';
import 'package:flutter/material.dart';

void main() {
runApp(const MyApp());
}

class MyApp extends StatelessWidget {
const MyApp({super.key});

@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}

class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});

final String title;

@override
State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
final _apiWrapper = DartFakeStoreApiWrapper();
String productsObtained = '';
String singleProductObtained = '';
String productAddedToCart = '';

@override
void initState() {
super.initState();
fetchData();
}

Future<void> fetchData() async {
try {
// Obtener todos los productos
final productos = await _apiWrapper.runFetchProducts();
setState(() {
productsObtained = 'Productos obtenidos: ${productos.length}';
});

// Obtener un producto por ID
final producto = await _apiWrapper.runFetchSingleProduct(1);
setState(() {
singleProductObtained = 'Producto obtenido: ${producto.title}';
});

// Enviar un producto al carrito
final cart = CartEntity(
userId: 1,
date: DateTime.now(),
products: [
ProductQuantityEntity(
productId: 1,
quantity: 2,
),
],
);
final carrito = await _apiWrapper.runSendProductToCart(cart);
setState(() {
for (var cart in carrito.products) {
productAddedToCart =
'Cantidad de productos enviados al carrito: ${cart.quantity}';
}
});
} catch (e) {
print(e);
}
}

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: Text(widget.title),
),
body: Padding(
padding: const EdgeInsets.all(16.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
productsObtained,
style: const TextStyle(fontSize: 16),
),
const SizedBox(height: 20),
Text(
singleProductObtained,
style: const TextStyle(fontSize: 16),
),
const SizedBox(height: 20),
Text(
productAddedToCart,
style: const TextStyle(fontSize: 16),
),
],
),
),
);
}
}


copied to clipboard
API #
DartFakeStoreApiWrapper #
runFetchProducts #
Future<List<ProductEntity>> runFetchProducts();
copied to clipboard
Obtiene la lista de productos disponibles.
runFetchSingleProduct #
Future<ProductEntity> runFetchSingleProduct(int productId);
copied to clipboard
Obtiene detalles de un solo producto por su ID.
runSendProductToCart #
Future<CartEntity> runSendProductToCart(CartEntity cart);
copied to clipboard
Agrega un producto al carrito de compra.
runFetchCategories #
Future<List<CategoryEntity>> runFetchCategories();
copied to clipboard
Lista las categorías disponibles
Modelos #
ProductEntity #
class ProductEntity {
final int id;
final String title;
final double price;
final String description;
final String category;
final double rating;
final String image;

ProductEntity({
required this.id,
required this.title,
required this.price,
required this.description,
required this.category,
required this.rating,
required this.image,
});
}
copied to clipboard
Representa un producto con sus detalles.
CartEntity #
class CartEntity {
final int id;
final int userId;
final String date;
final List<CartProduct> products;

CartEntity({
required this.id,
required this.userId,
required this.date,
required this.products,
});
}
copied to clipboard
Representa un carrito de compras.
CartProduct #
class CartProduct {
final int productId;
final int quantity;

CartProduct({
required this.productId,
required this.quantity,
});
}
copied to clipboard
Representa un producto dentro de un carrito de compras.
Tests #
Para ejecutar los tests unitarios, ejecuta el siguiente script:
chmod +x run_all_tests.sh
./run_all_tests.sh
copied to clipboard
Informe de covertura #

Para abrir el test de cobertura, ejecuta el siguiente comando:
open coverage/html/index.html
copied to clipboard
Contribuir #
Si deseas contribuir a este proyecto, sigue los pasos a continuación:

Haz un fork del proyecto.
Crea una nueva rama (git checkout -b feature-nueva-funcionalidad).
Realiza tus cambios y haz commit (git commit -am 'Añadir nueva funcionalidad').
Haz push a la rama (git push origin feature-nueva-funcionalidad).
Abre un Pull Request.
Asegúrate de que tu código sigue las convenciones de Dart y pasa todas las pruebas existentes.

Licencia #
Este proyecto está licenciado bajo la licencia MIT - mira el archivo LICENSE para más detalles.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.