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 Identificador de tu tenant
projectId GUID 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 Identificador de tu tenant
projectId GUID 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