Endpoints de Ping
Monitoreo de salud y prueba de conectividad para la Actions API.
Visión General
Los endpoints de ping proporcionan una forma sencilla de probar la conectividad y validar la autenticación con mindzieAPI. Estos endpoints son esenciales para monitorear la salud del sistema y solucionar problemas de conexión.
Ping No Autorizado
GET /api/{tenantId}/{projectId}/action/unauthorized-ping
Prueba básica de conectividad que no requiere autenticación. Úsalo para verificar que la API sea accesible.
Solicitud
GET https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/unauthorized-ping
Parámetros de Ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tenantId |
GUID | Sí | Identificador de tu tenant |
projectId |
GUID | Sí | Identificador de tu proyecto |
Respuesta
HTTP/1.1 200 OK
Content-Type: text/plain
Ping Successful
Casos de Uso
- Pruebas básicas de conectividad
- Chequeos de salud para balanceadores de carga
- Solución de problemas de red
- Monitoreo de disponibilidad del servicio
Ping Autenticado
GET /api/{tenantId}/{projectId}/action/ping
Prueba de conectividad autenticada que valida credenciales y verifica acceso al tenant y proyecto especificados.
Solicitud
GET https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/ping
Authorization: Bearer {your-access-token}
Parámetros de Ruta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
tenantId |
GUID | Sí | Identificador de tu tenant |
projectId |
GUID | Sí | Identificador de tu proyecto |
Respuesta
Éxito (200 OK):
HTTP/1.1 200 OK
Content-Type: text/plain
Ping Successful (tenant id: 12345678-1234-1234-1234-123456789012)
No autorizado (401):
HTTP/1.1 401 Unauthorized
Content-Type: text/plain
{mensaje de error que describe la falla en la autorización}
Casos de Uso
- Validación de autenticación
- Verificación de permisos
- Prueba de validez del token
- Validación de acceso a tenant/proyecto
Ejemplos de Implementación
cURL
# Ping no autorizado
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/action/unauthorized-ping"
# Ping autenticado
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/action/ping" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
JavaScript/Node.js
const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
const BASE_URL = 'https://your-mindzie-instance.com';
// Ping no autorizado
const unauthorizedPing = async () => {
const response = await fetch(
`${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/unauthorized-ping`
);
const text = await response.text();
console.log('Ping no autorizado:', text);
return response.ok;
};
// Ping autenticado
const authenticatedPing = async (token) => {
const response = await fetch(
`${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/ping`,
{
headers: {
'Authorization': `Bearer ${token}`
}
}
);
if (response.ok) {
const text = await response.text();
console.log('Ping autenticado:', text);
return true;
} else {
console.error('Falló la autenticación:', response.status);
return false;
}
};
Python
import requests
TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'
def unauthorized_ping():
"""Prueba básica de conectividad sin autenticación."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/unauthorized-ping'
response = requests.get(url)
print(f'Ping no autorizado: {response.text}')
return response.ok
def authenticated_ping(token):
"""Prueba de conectividad autenticada."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/ping'
headers = {
'Authorization': f'Bearer {token}'
}
response = requests.get(url, headers=headers)
if response.ok:
print(f'Ping autenticado: {response.text}')
return True
else:
print(f'Falló la autenticación: {response.status_code}')
return False
C#
using System.Net.Http;
using System.Threading.Tasks;
public class ActionApiClient
{
private readonly HttpClient _httpClient;
private readonly string _baseUrl;
private readonly Guid _tenantId;
private readonly Guid _projectId;
public ActionApiClient(string baseUrl, Guid tenantId, Guid projectId, string accessToken)
{
_baseUrl = baseUrl;
_tenantId = tenantId;
_projectId = projectId;
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
}
public async Task<bool> UnauthorizedPingAsync()
{
var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/action/unauthorized-ping";
var response = await _httpClient.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Ping no autorizado: {content}");
return response.IsSuccessStatusCode;
}
public async Task<bool> AuthenticatedPingAsync()
{
var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/action/ping";
var response = await _httpClient.GetAsync(url);
var content = await response.Content.ReadAsStringAsync();
if (response.IsSuccessStatusCode)
{
Console.WriteLine($"Ping autenticado: {content}");
return true;
}
else
{
Console.WriteLine($"Falló la autenticación: {response.StatusCode}");
return false;
}
}
}
Mejores Prácticas
- Cheques de Salud: Usa el ping no autorizado para sistemas automatizados de monitoreo de salud
- Validación Previa: Llama al ping autenticado antes de ejecutar acciones para validar credenciales
- Manejo de Errores: Siempre maneja de forma adecuada los tiempos de espera de red y fallas de autenticación
- Monitoreo: Configura alertas automáticas basadas en fallos de ping para detectar caídas de servicio temprano