Referencia de API
Introducción
La API de Arkflows proporciona una interfaz programática para interactuar con la plataforma. Esta documentación detalla los endpoints disponibles, sus parámetros y respuestas.
Autenticación
OAuth 2.0
POST /oauth/token
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&
client_id=YOUR_CLIENT_ID&
client_secret=YOUR_CLIENT_SECRET
JWT
GET /api/v1/resource
Authorization: Bearer YOUR_JWT_TOKEN
Endpoints Principales
Procesos
Listar Procesos
GET /api/v1/processes
Parámetros de Query:
page: Número de página (default: 1)limit: Elementos por página (default: 20)status: Estado del procesocategory: Categoría del proceso
Respuesta:
{
"data": [
{
"id": "string",
"name": "string",
"description": "string",
"status": "string",
"category": "string",
"createdAt": "string",
"updatedAt": "string"
}
],
"pagination": {
"total": "number",
"page": "number",
"limit": "number"
}
}
Crear Proceso
POST /api/v1/processes
Content-Type: application/json
{
"name": "string",
"description": "string",
"category": "string",
"definition": "string"
}
Obtener Proceso
GET /api/v1/processes/{processId}
Actualizar Proceso
PUT /api/v1/processes/{processId}
Content-Type: application/json
{
"name": "string",
"description": "string",
"category": "string",
"definition": "string"
}
Eliminar Proceso
DELETE /api/v1/processes/{processId}
Formularios
Listar Formularios
GET /api/v1/forms
Parámetros de Query:
page: Número de páginalimit: Elementos por páginatype: Tipo de formulario
Respuesta:
{
"data": [
{
"id": "string",
"name": "string",
"type": "string",
"fields": "array",
"createdAt": "string",
"updatedAt": "string"
}
],
"pagination": {
"total": "number",
"page": "number",
"limit": "number"
}
}
Crear Formulario
POST /api/v1/forms
Content-Type: application/json
{
"name": "string",
"type": "string",
"fields": "array"
}
Obtener Formulario
GET /api/v1/forms/{formId}
Actualizar Formulario
PUT /api/v1/forms/{formId}
Content-Type: application/json
{
"name": "string",
"type": "string",
"fields": "array"
}
Eliminar Formulario
DELETE /api/v1/forms/{formId}
Integraciones
Listar Conectores
GET /api/v1/connectors
Parámetros de Query:
type: Tipo de conectorstatus: Estado del conector
Respuesta:
{
"data": [
{
"id": "string",
"name": "string",
"type": "string",
"status": "string",
"config": "object",
"createdAt": "string",
"updatedAt": "string"
}
]
}
Crear Conector
POST /api/v1/connectors
Content-Type: application/json
{
"name": "string",
"type": "string",
"config": "object"
}
Probar Conector
POST /api/v1/connectors/{connectorId}/test
Content-Type: application/json
{
"config": "object"
}
Instancias de Proceso
Iniciar Proceso
POST /api/v1/processes/{processId}/instances
Content-Type: application/json
{
"variables": "object"
}
Listar Instancias
GET /api/v1/processes/{processId}/instances
Parámetros de Query:
status: Estado de la instanciastartDate: Fecha de inicioendDate: Fecha de fin
Obtener Instancia
GET /api/v1/processes/{processId}/instances/{instanceId}
Completar Tarea
POST /api/v1/tasks/{taskId}/complete
Content-Type: application/json
{
"variables": "object"
}
Códigos de Estado
200 OK: Solicitud exitosa201 Created: Recurso creado400 Bad Request: Solicitud inválida401 Unauthorized: No autenticado403 Forbidden: No autorizado404 Not Found: Recurso no encontrado500 Internal Server Error: Error del servidor
Manejo de Errores
{
"error": {
"code": "string",
"message": "string",
"details": "object"
}
}
Límites y Cuotas
- Rate Limiting: 1000 requests por hora
- Tamaño máximo de payload: 10MB
- Tiempo máximo de timeout: 30 segundos
Versiones
- v1: Versión actual
- v2: En desarrollo (beta)
SDKs
- JavaScript/TypeScript
- Python
- Java
- .NET
Ejemplos
JavaScript
const arkflows = require('@arkflows/sdk');
const client = new arkflows.Client({
clientId: 'YOUR_CLIENT_ID',
clientSecret: 'YOUR_CLIENT_SECRET'
});
// Listar procesos
const processes = await client.processes.list();
// Crear proceso
const process = await client.processes.create({
name: 'Mi Proceso',
description: 'Descripción del proceso',
category: 'General'
});
// Iniciar instancia
const instance = await client.processes.startInstance(process.id, {
variables: {
key: 'value'
}
});
Python
from arkflows import Client
client = Client(
client_id='YOUR_CLIENT_ID',
client_secret='YOUR_CLIENT_SECRET'
)
# Listar procesos
processes = client.processes.list()
# Crear proceso
process = client.processes.create(
name='Mi Proceso',
description='Descripción del proceso',
category='General'
)
# Iniciar instancia
instance = client.processes.start_instance(
process.id,
variables={'key': 'value'}
)