FastComments.com

FastComments Java SDK


Esto es el SDK oficial de Java para FastComments.

SDK oficial de Java para la API de FastComments

Repositorio

Ver en GitHub


Instalación Internal Link

Maven

Añade el repositorio Repsy al POM de tu proyecto:

<repositories>
    <repository>
        <id>repsy</id>
        <name>FastComments Maven Repository on Repsy</name>
        <url>https://repo.repsy.io/mvn/winrid/fastcomments</url>
    </repository>
</repositories>

Then add the dependencies you need:

<dependencies>
    <!-- Cliente de la API -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>client</artifactId>
        <version>0.0.2</version>
    </dependency>

    <!-- Biblioteca principal (incluye SSO) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>core</artifactId>
        <version>0.0.2</version>
    </dependency>

    <!-- Biblioteca PubSub (para eventos en vivo) -->
    <dependency>
        <groupId>com.fastcomments</groupId>
        <artifactId>pubsub</artifactId>
        <version>0.0.2</version>
    </dependency>
</dependencies>

Gradle

Añade el repositorio Repsy a tu archivo build.gradle:

repositories {
    mavenCentral()
    maven {
        url "https://repo.repsy.io/mvn/winrid/fastcomments"
    }
}

dependencies {
    // Cliente de la API
    implementation "com.fastcomments:client:0.0.2"

    // Biblioteca principal (incluye SSO)
    implementation "com.fastcomments:core:0.0.2"

    // Biblioteca PubSub (para eventos en vivo)
    implementation "com.fastcomments:pubsub:0.0.2"
}

Contenido de la librería

Esta librería contiene tres módulos. El cliente de API generado, la librería Java principal que contiene utilidades escritas a mano para facilitar el trabajo con la API, y el módulo pubsub, que es una librería para suscribirse a flujos de cambios.

APIs públicas frente a protegidas

Para el cliente de la API, hay dos clases, DefaultApi y PublicApi. DefaultApi contiene métodos que requieren tu clave de API, y PublicApi contiene llamadas a la API que se pueden realizar directamente desde un navegador, dispositivo móvil, etc., sin autenticación.

Inicio rápido Internal Link

Uso de APIs autenticadas (DefaultApi)

Importante: Debes configurar tu clave API en el ApiClient antes de realizar solicitudes autenticadas. Si no lo haces, las solicitudes fallarán con un error 401.

import com.fastcomments.invoker.ApiClient;
import com.fastcomments.invoker.ApiException;
import com.fastcomments.api.DefaultApi;
import com.fastcomments.model.*;

public class Example {
    public static void main(String[] args) {
        // Crear y configurar el cliente de la API
        ApiClient apiClient = new ApiClient();

        // REQUERIDO: Establece tu clave API (obténla desde tu panel de FastComments)
        apiClient.setApiKey("YOUR_API_KEY_HERE");

        // Crear la instancia de la API con el cliente configurado
        DefaultApi api = new DefaultApi(apiClient);

        // Ahora puedes hacer llamadas a la API autenticadas
        try {
            // Ejemplo: Añadir un usuario SSO
            CreateAPISSOUserData userData = new CreateAPISSOUserData();
            userData.setId("user-123");
            userData.setEmail("user@example.com");
            userData.setDisplayName("John Doe");

            AddSSOUserAPIResponse response = api.addSSOUser("YOUR_TENANT_ID", userData)
                .execute();
            System.out.println("User created: " + response);

        } catch (ApiException e) {
            System.err.println("Error: " + e.getResponseBody());
            // Errores comunes:
            // - 401: La clave API falta o no es válida
            // - 400: La validación de la solicitud falló
        }
    }
}

Uso de APIs públicas (PublicApi)

Los endpoints públicos no requieren autenticación:

import com.fastcomments.api.PublicApi;
import com.fastcomments.invoker.ApiException;

PublicApi publicApi = new PublicApi();

try {
    var response = publicApi.getCommentsPublic("YOUR_TENANT_ID", "page-url-id")
        .execute();
    System.out.println(response);
} catch (ApiException e) {
    e.printStackTrace();
}

Problemas comunes

  1. 401 "missing-api-key" error: Asegúrate de llamar a apiClient.setApiKey("YOUR_KEY") antes de crear la instancia DefaultApi.
  2. Wrong API class: Usa DefaultApi para solicitudes autenticadas del lado del servidor, PublicApi para solicitudes del lado del cliente/públicas.
  3. Null API key: El SDK omitirá la autenticación silenciosamente si la clave API es null, lo que llevará a errores 401.

Notas Internal Link

IDs de Broadcast

Verás que se supone que debes pasar un broadcastId en algunas llamadas a la API. Cuando recibas eventos, obtendrás este ID de vuelta, así sabrás ignorar el evento si planeas aplicar cambios de forma optimista en el cliente (lo cual probablemente querrás hacer ya que ofrece la mejor experiencia). Pasa un UUID aquí. El ID debe ser lo suficientemente único como para no ocurrir dos veces en una sesión del navegador.

¿Necesita ayuda?

Si encuentra algún problema o tiene preguntas sobre el SDK de Java, por favor:

Contribuciones

¡Las contribuciones son bienvenidas! Por favor visite el repositorio de GitHub para las pautas de contribución.