Este módulo permite obtener una lista paginada de fabricantes de vehículos desde una API externa del gobierno de Estados Unidos (NHTSA).
Los datos son procesados, transformados y devueltos en un formato unificado para su consumo por el frontend o integradores externos.
GET /api/v1/vehicles?page=1
Versión: v1
Ruta base local:http://localhost:4000/api/v1/vehicles
Nombre | Tipo | Requerido | Descripción |
---|---|---|---|
page | number | ✅ Sí | Número de página para paginar. |
GET http://localhost:4000/api/v1/vehicles?page=1
{
"message": "Vehicles found successfully",
"data": [
{
"id_manufactureer": 955,
"country": "UNITED STATES (USA)",
"legal_name": "TESLA, INC.",
"name": "Tesla",
"vehicle_types": [
{
"is_primary": true,
"name": "Passenger Car"
},
{
"is_primary": false,
"name": "Truck"
}
]
}
],
"statusCode": 200,
"service": "VehiclesService"
}
Código | Descripción |
---|---|
404 | No vehicles found (cuando la respuesta viene vacía). |
500 | Error al comunicarse con la API externa o error interno. |
Este servicio consume información pública desde la API de:
NHTSA - National Highway Traffic Safety Administration
https://vpic.nhtsa.dot.gov/api/vehicles/GetAllManufacturers?page=X&format=json
# 1. Clonar el repositorio
git clone <tu-repo>.git
cd <tu-repo>
# 2. Instalar dependencias
npm install
# 3. Crear archivo de entorno
cp .env.example .env
# 4. Configurar URL externa
# En .env
URL_VEHICLES_API=https://vpic.nhtsa.dot.gov/api/vehicles/GetAllManufacturers?format=json
# 5. Ejecutar el proyecto en desarrollo
npm run start:dev
Una vez ejecutado, puedes probar el endpoint en:
http://localhost:4000/api/v1/vehicles?page=1
También disponible en Swagger UI:
http://localhost:4000/api
- Node.js + NestJS como framework backend.
- RxJS con
lastValueFrom
para el manejo de observables de Axios. - Swagger para la documentación interactiva (
@nestjs/swagger
). - Axios como cliente HTTP (
@nestjs/axios
). - ConfigModule para manejar configuraciones externas y variables de entorno.
- Class-validator para validación de DTOs.
- Custom Mapper para transformar la data de la API externa.
- Logger Service para trazabilidad de errores.
📁 src/
└── 📁 modules/
└── 📁 vehicles/
├── controllers/
├── services/
├── dto/
├── mapper/
├── types/
└── vehicles.module.ts
Javier Rojas
Desarrollador Backend con NestJS — 2025
Contacto: LinkedIn