Referencia API
API de Ecommerce
API REST para consultar y gestionar un catálogo de productos de moda. Incluye operaciones de lectura, creación, actualización y eliminación de recursos.
Métodos disponibles:
GET,
POST,
PUT y
DELETE.
Base URL
https://devsapihub.com/api-ecommerce
Puedes consumir esta API con cualquier cliente HTTP o directamente desde el navegador.
Endpoints
Listar productos
GET /api-ecommerce
GET
Retorna un array con todos los productos del catálogo.
Obtener producto por ID
GET /api-ecommerce/product/:id
GET
Retorna un producto según el identificador enviado en la ruta.
GET /api-ecommerce/product/5
Filtrar productos por estilo
GET /api-ecommerce/style/:style
GET
Retorna los productos cuyo campo style coincide con el valor enviado.
GET /api-ecommerce/style/Adidas
Si no existen coincidencias, la API responde con código 404.
Crear producto
POST /api-ecommerce/product
POST
Body JSON requerido:
{
"title": "Classic Retro Windbreaker Nuevo",
"description": "Vintage 90s - Unisex",
"style": "Retro Windbreaker",
"img": "https://devsapihub.com/img-ecommerce/4.webp",
"sizeList": ["M", "L"],
"price": 32.5,
"currency": {
"id": "USD",
"format": "$"
},
"installments": 10,
"isFreeShipping": true
}
Respuesta: recurso creado y disponible para consulta con GET /api-ecommerce.
Actualizar producto
PUT /api-ecommerce/product/:id
PUT
Ejemplo de consulta previa:
GET /api-ecommerce/product/3
Body JSON de actualización:
{
"id": 3,
"title": "Skater Black Sweatshirt Actualizado",
"description": "14/15 s/nº - Jogador",
"style": "Tony Hawk",
"img": "https://devsapihub.com/img-ecommerce/3.webp",
"sizeList": ["XL"],
"price": 25.9,
"currency": {
"id": "USD",
"format": "$"
},
"installments": 12,
"isFreeShipping": false
}
Respuesta: recurso actualizado con los nuevos valores.
Eliminar producto
DELETE /api-ecommerce/product/:id
DELETE
Elimina el producto indicado por ID.
DELETE /api-ecommerce/product/7
Respuesta: listado actualizado consultable en GET /api-ecommerce.
Ejemplos de consumo
# Listar todos los productos
curl -X GET "https://devsapihub.com/api-ecommerce"
# Obtener un producto por ID
curl -X GET "https://devsapihub.com/api-ecommerce/product/1"
# Filtrar productos por estilo (categoría)
curl -X GET "https://devsapihub.com/api-ecommerce/style/Wine"
# Crear un nuevo producto
curl -X POST "https://devsapihub.com/api-ecommerce/product" \
-H "Content-Type: application/json" \
-d '{
"title": "Camisa Manga Larga Premium",
"description": "Edición limitada 2026",
"style": "Casual",
"price": 29.99,
"img": "https://devsapihub.com/img-ecommerce/example.webp",
"sizeList": ["S", "M", "L", "XL"],
"installments": 3,
"isFreeShipping": true,
"currency": { "id": "USD", "format": "$" }
}'
const getProducts = async () => {
try {
const res = await fetch("https://devsapihub.com/api-ecommerce");
const data = await res.json();
if (!res.ok) {
throw new Error("Error en la respuesta de la API");
}
console.log(data);
} catch (error) {
console.error("Error al obtener los productos:", error.message);
}
};
getProducts();
import requests
response = requests.get("https://devsapihub.com/api-ecommerce")
print(response.json())
import axios from "axios";
const getProducts = async () => {
try {
const res = await axios.get("https://devsapihub.com/api-ecommerce");
console.log(res.data);
} catch (error) {
console.error("Error al obtener los productos:", error.message);
}
};
getProducts();
import { useEffect, useState } from 'react';
export default function App() {
const [products, setProducts] = useState([]);
useEffect(() => {
const getProducts = async () => {
try {
const resp = await fetch('https://devsapihub.com/api-ecommerce');
const data = await resp.json();
setProducts(data);
} catch (error) {
console.error(error);
}
};
getProducts();
}, []);
return (
<>
<h1>Productos</h1>
{products.map((product) => (
<div key={product.id}>
<img
src={product.img}
alt={product.title}
style={{ width: '200px', height: '260px', objectFit: 'cover' }}
/>
<h3>{product.title}</h3>
<p>{product.description}</p>
<p><strong>Estilo:</strong> {product.style}</p>
<p>
<strong>Precio:</strong> {product.currency.format}
{product.price.toFixed(2)}{' '}
{product.isFreeShipping && <span>· Envío gratis</span>}
</p>
<p><strong>Tallas:</strong> {product.sizeList.join(', ')}</p>
</div>
))}
</>
);
}
<?php
$response = @file_get_contents('https://devsapihub.com/api-ecommerce');
$data = json_decode($response, true);
echo '<pre>';
echo $data ? print_r($data, true) : 'Error al obtener o decodificar los datos.';
echo '</pre>';
?>
Demo de interfaz
Ejemplo práctico de una vista de productos conectada a datos de API.
Explorar en CodePen