Recursos para Desarrolladores
Documentación, APIs y guías para integrar nuestras herramientas SaaS en sus aplicaciones
1. Introducción
nearServices ofrece APIs y SDKs para integrar nuestras herramientas SaaS especializadas en sus aplicaciones empresariales. Nuestro sistema de créditos unificado permite a sus usuarios acceder a múltiples herramientas con una sola integración.
2. Guía de Inicio Rápido
2.1 Obtener Credenciales de API
- Regístrese en nearServices y verifique su cuenta
- Acceda al panel de desarrollador en su dashboard
- Genere sus claves de API (pública y privada)
- Configure los dominios autorizados para su aplicación
2.2 Autenticación
Utilizamos autenticación basada en API keys con firma HMAC-SHA256:
# Ejemplo de autenticación
curl -X GET "https://api.near.services/v1/tools" \
-H "X-API-Key: your_public_key" \
-H "X-Signature: hmac_sha256_signature" \
-H "X-Timestamp: unix_timestamp"
2.3 Primer Llamada a la API
# Obtener lista de herramientas disponibles
GET https://api.near.services/v1/tools
# Respuesta
{
"tools": [
{
"id": "text-analyzer",
"name": "Analizador de Texto",
"description": "Análisis avanzado de texto con IA",
"cost_per_use": 1,
"currency": "USD",
"category": "nlp"
}
]
}
3. API Reference
3.1 Base URL
https://api.near.services/v1
3.2 Endpoints Principales
Gestión de Créditos
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /credits/balance | Obtener saldo actual de créditos |
| POST | /credits/purchase | Comprar créditos adicionales |
| GET | /credits/history | Historial de transacciones |
Herramientas SaaS
| Método | Endpoint | Descripción |
|---|---|---|
| GET | /tools | Listar herramientas disponibles |
| POST | /tools/{tool_id}/execute | Ejecutar herramienta específica |
| GET | /tools/{tool_id}/status/{job_id} | Estado de ejecución |
| GET | /tools/{tool_id}/result/{job_id} | Obtener resultados |
4. SDKs Disponibles
4.1 JavaScript/Node.js
npm install @nearservices/sdk
// Uso básico
import { NearServices } from '@nearservices/sdk';
const client = new NearServices({
apiKey: 'your_public_key',
secretKey: 'your_private_key'
});
// Ejecutar herramienta
const result = await client.tools.execute('text-analyzer', {
text: 'Texto a analizar',
options: { sentiment: true, keywords: true }
});
4.2 Python
pip install nearservices-sdk
# Uso básico
from nearservices import NearServices
client = NearServices(
api_key='your_public_key',
secret_key='your_private_key'
)
# Ejecutar herramienta
result = client.tools.execute('text-analyzer', {
'text': 'Texto a analizar',
'options': {'sentiment': True, 'keywords': True}
})
4.3 PHP
composer require nearservices/sdk
// Uso básico
use NearServices\Client;
$client = new Client([
'api_key' => 'your_public_key',
'secret_key' => 'your_private_key'
]);
// Ejecutar herramienta
$result = $client->tools->execute('text-analyzer', [
'text' => 'Texto a analizar',
'options' => ['sentiment' => true, 'keywords' => true]
]);
5. Ejemplos de Integración
5.1 Análisis de Texto en Tiempo Real
// Frontend JavaScript
async function analyzeText(text) {
try {
const response = await fetch('/api/analyze', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ text })
});
const result = await response.json();
displayResults(result);
} catch (error) {
console.error('Error:', error);
}
}
// Backend (Node.js/Express)
app.post('/api/analyze', async (req, res) => {
try {
const result = await nearServices.tools.execute('text-analyzer', {
text: req.body.text,
options: { sentiment: true, entities: true }
});
res.json(result);
} catch (error) {
res.status(500).json({ error: error.message });
}
});
5.2 Procesamiento por Lotes
// Procesar múltiples documentos
async function processBatch(documents) {
const jobs = [];
for (const doc of documents) {
const job = await nearServices.tools.execute('document-processor', {
document: doc,
async: true // Procesamiento asíncrono
});
jobs.push(job);
}
// Esperar a que todos terminen
const results = await Promise.all(
jobs.map(job => nearServices.tools.waitForResult(job.id))
);
return results;
}
6. Webhooks
6.1 Configuración
Configure webhooks para recibir notificaciones sobre eventos importantes:
POST /webhooks
{
"url": "https://su-app.com/webhooks/nearservices",
"events": ["job.completed", "credits.low", "tool.error"],
"secret": "webhook_secret_for_verification"
}
6.2 Eventos Disponibles
job.completed- Trabajo completadojob.failed- Trabajo fallócredits.low- Créditos bajos (configurable)credits.purchased- Créditos compradostool.error- Error en herramienta
6.3 Verificación de Webhooks
// Verificar firma del webhook
const crypto = require('crypto');
function verifyWebhook(payload, signature, secret) {
const expectedSignature = crypto
.createHmac('sha256', secret)
.update(payload)
.digest('hex');
return signature === `sha256=${expectedSignature}`;
}
7. Límites y Cuotas
7.1 Límites de Rate
| Endpoint | Límite | Ventana |
|---|---|---|
| API General | 1000 requests | 1 hora |
| Ejecución de herramientas | 100 jobs | 1 hora |
| Compra de créditos | 10 transacciones | 1 día |
7.2 Headers de Rate Limit
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
8. Manejo de Errores
8.1 Códigos de Error HTTP
| Código | Significado | Acción Recomendada |
|---|---|---|
| 400 | Bad Request | Verificar parámetros de entrada |
| 401 | Unauthorized | Verificar credenciales de API |
| 402 | Payment Required | Comprar más créditos |
| 429 | Too Many Requests | Implementar backoff exponencial |
| 500 | Internal Server Error | Reintentar después de un tiempo |
8.2 Formato de Errores
{
"error": {
"code": "INSUFFICIENT_CREDITS",
"message": "No tiene suficientes créditos para esta operación",
"details": {
"required": 5,
"available": 2
}
}
}
9. Mejores Prácticas
9.1 Seguridad
- Nunca exponga sus claves privadas en el frontend
- Use HTTPS para todas las comunicaciones
- Implemente verificación de webhooks
- Rote sus claves de API regularmente
9.2 Rendimiento
- Implemente caché para resultados frecuentes
- Use procesamiento asíncrono para trabajos largos
- Implemente retry con backoff exponencial
- Monitoree el uso de créditos
9.3 Experiencia de Usuario
- Muestre el progreso de trabajos largos
- Implemente notificaciones de créditos bajos
- Proporcione feedback claro sobre errores
- Permita cancelación de trabajos en progreso
10. Soporte y Comunidad
10.1 Canales de Soporte
- Email: developers@near.services
- Discord: discord.gg/nearservices
- GitHub: github.com/nearservices
- Stack Overflow: Tag "nearservices"
10.2 Recursos Adicionales
10.3 Status de Servicios
Monitoree el estado de nuestros servicios en: status.near.services
10.4 Información Legal
nearServices opera desde Buenos Aires, Argentina. Todos los precios se expresan en dólares estadounidenses (USD).