cms-web-apis
v1.0.0
Published
Biblioteca de APIs para CMS Web - Conjunto completo de funciones para interactuar con APIs de gestión de contenido
Maintainers
Readme
CMS Web APIs
Una biblioteca completa de TypeScript para interactuar con APIs de gestión de contenido (CMS). Esta biblioteca proporciona funciones tipadas para todas las operaciones relacionadas con productos, atributos, imágenes, categorías y más.
🚀 Características
- Completamente tipado con TypeScript
- Soporte para ESM y CommonJS
- Manejo de errores robusto
- Funciones de utilidad incluidas
- Documentación completa de tipos
📦 Instalación
npm install cms-web-apis🔧 Configuración
Antes de usar la biblioteca, configura las variables de entorno:
# .env
VITE_ERP_BASE_URL=https://tu-api-base-url.com
API_BASE_URL=https://tu-api-base-url.com📖 Uso Básico
Importación
// Importar funciones específicas
import { unidadesMedida, getCategoriasProducto, getAtributos } from 'cms-web-apis';
// Importar tipos
import type { UnidadMedida, CategoriaProducto, Atributo } from 'cms-web-apis';Ejemplo de Uso
import { unidadesMedida, getCategoriasProducto } from 'cms-web-apis';
async function ejemploUso() {
try {
// Obtener unidades de medida
const unidades = await unidadesMedida();
console.log('Unidades de medida:', unidades);
// Obtener categorías de producto
const categorias = await getCategoriasProducto();
console.log('Categorías:', categorias);
} catch (error) {
console.error('Error:', error);
}
}🛠️ APIs Disponibles
Productos y Categorías
getCategoriasProducto()- Obtener categorías de productosgetTiposProducto()- Obtener tipos de productosgetMarcasProducto()- Obtener marcas de productosgetSegmentos()- Obtener segmentosgetMotorizacionesProducto()- Obtener motorizaciones
Atributos y Validaciones
getAtributos()- Obtener atributoseditarAtributo()- Editar atributoreglaValidacionAtributo()- Reglas de validacióngetReglasValidacion()- Obtener reglas de validación
Imágenes y Medios
getImagenesProducto()- Obtener imágenes de productosgetImagenesMarca()- Obtener imágenes de marcasgetImagenesGrupoProducto()- Obtener imágenes de gruposgetImagenesOtrosContenidos()- Obtener otros contenidos
Configuración y Utilidades
getPreLoginInfo()- Información de pre-logingetTiposArchivo()- Obtener tipos de archivogetContentSettings()- Configuraciones de contenidounidadesMedida()- Obtener unidades de medida
Importación y Exportación
importarAtributosPorProducto()- Importar atributosgetExportarProducto()- Exportar productosgetInformeActualizacionProductos()- Informes de actualización
🔍 Tipos Principales
// Unidades de Medida
interface UnidadMedida {
id: number;
nombre: string;
descripcion?: string;
simbolo?: string;
activo: boolean;
fechaCreacion: string;
fechaActualizacion?: string;
}
// Categorías de Producto
interface CategoriaProducto {
id: number;
nombre: string;
descripcion?: string;
activo: boolean;
fechaCreacion: string;
fechaActualizacion?: string;
}
// Atributos
interface Atributo {
id: number;
nombre: string;
descripcion?: string;
activo: boolean;
fechaCreacion: string;
fechaActualizacion?: string;
}🏗️ Desarrollo
Construir la biblioteca
# Instalar dependencias
npm install
# Construir para producción
npm run build
# Construir solo CommonJS
npm run build:cjs
# Construir solo ESM
npm run build:esmEstructura del proyecto
src/
├── index.tsx # Punto de entrada principal
├── api.ts # Utilidades de API
├── api*.ts # Funciones de API específicas
├── api*.type.ts # Tipos TypeScript
└── ...📝 Ejemplos Avanzados
Manejo de Errores
import { getCategoriasProducto } from 'cms-web-apis';
async function manejoErrores() {
try {
const categorias = await getCategoriasProducto();
return categorias;
} catch (error) {
if (error instanceof Error) {
console.error('Error específico:', error.message);
}
throw error;
}
}Uso con React
import { useState, useEffect } from 'react';
import { getCategoriasProducto, type CategoriaProducto } from 'cms-web-apis';
function CategoriasComponent() {
const [categorias, setCategorias] = useState<CategoriaProducto[]>([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
async function cargarCategorias() {
try {
const data = await getCategoriasProducto();
setCategorias(data);
} catch (error) {
console.error('Error cargando categorías:', error);
} finally {
setLoading(false);
}
}
cargarCategorias();
}, []);
if (loading) return <div>Cargando...</div>;
return (
<div>
{categorias.map(categoria => (
<div key={categoria.id}>{categoria.nombre}</div>
))}
</div>
);
}🤝 Contribuir
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
📄 Licencia
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
🆘 Soporte
Si tienes problemas o preguntas:
- Revisa la documentación
- Busca en los issues existentes
- Crea un nuevo issue con detalles del problema
Desarrollado con ❤️ para simplificar la gestión de APIs de CMS
