ConfluenceLoader.Client (confluence_loader v0.1.2)

View Source

HTTP client for interacting with the Confluence REST API.

This module handles authentication and request formatting for the Confluence API. It supports both cloud and server instances of Confluence.

Configuration

The client requires:

  • base_url: Your Confluence instance URL (e.g., "https://example.atlassian.net")
  • username: Your email address (for cloud) or username (for server)
  • api_token: Your API token (for cloud) or password (for server)

Options

  • :api_base_path - The base path for the API (default: "/wiki/api/v2")
  • :timeout - Request timeout in milliseconds (default: 30_000)
  • :recv_timeout - Receive timeout in milliseconds (default: 30_000)

Examples

# For Confluence Cloud
client = ConfluenceLoader.Client.new("https://example.atlassian.net", "user@example.com", "api_token")
%ConfluenceLoader.Client{...}

# For Confluence Server with custom API path
client = ConfluenceLoader.Client.new("https://example.atlassian.net", "user@example.com", "api_token", api_base_path: "/api/v2")
%ConfluenceLoader.Client{...}

Summary

Functions

Makes a GET request to the Confluence API.

Creates a new Confluence client.

Types

t()

@type t() :: %ConfluenceLoader.Client{
  api_base_path: String.t(),
  api_token: String.t(),
  base_url: String.t(),
  timeout: non_neg_integer(),
  username: String.t()
}

Functions

get(client, path, params \\ [])

@spec get(t(), String.t(), keyword()) :: {:ok, map()} | {:error, term()}

Makes a GET request to the Confluence API.

new(base_url, username, api_token, opts \\ [])

@spec new(String.t(), String.t(), String.t(), keyword()) :: t()

Creates a new Confluence client.

Parameters

  • base_url: The base URL of your Confluence instance (e.g., "https://your-domain.atlassian.net")
  • username: Your Atlassian username (email)
  • api_token: Your Atlassian API token
  • opts: Optional keyword list with:
    • timeout: Request timeout in milliseconds (default: 30000)
    • api_base_path: Custom API base path (default: "/wiki/api/v2")

Examples

iex> client = ConfluenceLoader.Client.new("https://example.atlassian.net", "user@example.com", "api_token")
%ConfluenceLoader.Client{...}

# For Confluence Cloud with different API path
iex> client = ConfluenceLoader.Client.new("https://example.atlassian.net", "user@example.com", "api_token", api_base_path: "/api/v2")
%ConfluenceLoader.Client{...}