Apariencia
Tipos de Servicio
Endpoint
GET /api/v3/typesDescripción
Retorna la lista de tipos de servicio del ofertante disponibles para la integración API, con su identificador y los requisitos de origen/destino de cada tipo.
Información proporcionada por cada tipo:
id: identificador del tipo de servicio (para usar entipoServiciode otras operaciones).type: nombre del tipo de servicio.required_origin: si el tipo requiere punto de origen.required_destination: si el tipo requiere punto de destino.
Uso recomendado:
Consultar antes de crear ofertas o asignaciones directas para validar los tipos de servicio disponibles y sus requisitos.
Autenticación
Este endpoint usa autenticación HTTP Basic (autValidator).
Authorization: Basic <credentials>Parámetros
Este endpoint no requiere parámetros en el body ni en la query string.
Respuesta
Éxito (200)
La respuesta es un objeto con status, msg y data (la lista de tipos). Los valores de required_origin y required_destination se devuelven como booleanos.
json
{
"status": true,
"msg": "TIPOS DE SERVICIO",
"data": [
{
"id": 1,
"type": "GRÚA LIVIANA",
"required_origin": true,
"required_destination": true
},
{
"id": 2,
"type": "CONDUCTOR ELEGIDO",
"required_origin": true,
"required_destination": false
},
{
"id": 3,
"type": "MECÁNICO EN SITIO",
"required_origin": true,
"required_destination": false
}
]
}Los
id, nombres y valores mostrados son ilustrativos. La lista real depende de la configuración de tipos de servicio (api_services_skill) del ofertante.
Estructura de cada elemento de data
| Campo | Tipo | Descripción |
|---|---|---|
id | integer | Identificador del tipo de servicio (id_api_skill). Se usa en el campo tipoServicio. |
type | string | Nombre del tipo de servicio (service_type_name). |
required_origin | boolean | Indica si el tipo requiere especificar punto de origen. |
required_destination | boolean | Indica si el tipo requiere especificar punto de destino. |
Ejemplos de Código
cURL
bash
curl -X GET "[URL_API]/api/v3/types" \
--user "tu_usuario:tu_password" \
-H "Content-Type: application/json"JavaScript
javascript
const obtenerTiposServicio = async () => {
const response = await fetch('[URL_API]/api/v3/types', {
method: 'GET',
headers: {
'Authorization': `Basic ${btoa('usuario:password')}`,
'Content-Type': 'application/json'
}
});
const result = await response.json();
if (!result.status) {
throw new Error(result.msg);
}
return result.data;
};
// Uso
obtenerTiposServicio()
.then(tipos => {
console.log('Tipos disponibles:');
tipos.forEach(tipo => {
console.log(`${tipo.id}: ${tipo.type}`);
console.log(` Origen requerido: ${tipo.required_origin}`);
console.log(` Destino requerido: ${tipo.required_destination}`);
});
})
.catch(error => console.error('Error:', error));Python
python
import requests
from requests.auth import HTTPBasicAuth
def obtener_tipos_servicio():
response = requests.get(
'[URL_API]/api/v3/types',
auth=HTTPBasicAuth('usuario', 'password')
)
result = response.json()
if not result['status']:
raise Exception(result['msg'])
return result['data']
# Uso
try:
tipos = obtener_tipos_servicio()
print("Tipos de servicio disponibles:")
for tipo in tipos:
print(f"ID {tipo['id']}: {tipo['type']}")
print(f" Origen: {'Requerido' if tipo['required_origin'] else 'Opcional'}")
print(f" Destino: {'Requerido' if tipo['required_destination'] else 'Opcional'}")
print()
except Exception as e:
print(f"Error: {e}")Validación de Requisitos
Validar antes de crear una oferta o asignación
javascript
async function validarTipoServicio(tipoId, tieneDestino) {
const tipos = await obtenerTiposServicio();
const tipoSeleccionado = tipos.find(t => t.id === parseInt(tipoId));
if (!tipoSeleccionado) {
throw new Error(`Tipo de servicio ${tipoId} no existe`);
}
if (tipoSeleccionado.required_destination && !tieneDestino) {
throw new Error(`El tipo "${tipoSeleccionado.type}" requiere punto de destino`);
}
return tipoSeleccionado;
}Recomendación
Consulta este endpoint al inicializar tu aplicación y guarda los tipos en cache local. Usa el id devuelto como valor de tipoServicio en Asignación Directa y en las ofertas.
Importante
Valida siempre que el tipo de servicio seleccionado exista y cumpla con los requisitos de origen/destino (required_origin / required_destination) antes de crear una oferta.