Skip to content

Architecture Overview

Eldar Shahmaliyev edited this page Jan 27, 2025 · 1 revision

Lexicon Structure

The SDK adopts a well-organized namespace structure, mirroring the AT Protocol's hierarchy:

use Atproto\Lexicons\{
    App\Bsky\Feed\Post,           // app.bsky.feed.post
    App\Bsky\Actor\Profile,       // app.bsky.actor.profile
    Com\Atproto\Repo\CreateRecord // com.atproto.repo.createRecord
};

Namespaced Identifiers (NSID)

Each operation corresponds to a specific NSID in the AT Protocol. Examples:

- app.bsky.feed.post            -> Atproto\Lexicons\App\Bsky\Feed\Post
- app.bsky.actor.getProfile     -> Atproto\Lexicons\App\Bsky\Actor\GetProfile

Smart Builder Pattern

The SDK supports method chaining for intuitive API requests:

$response = $client->com()      // Navigate to 'com' namespace
    ->atproto()                 // Navigate to 'atproto' subspace
    ->repo()                    // Navigate to 'repo' operations
    ->createRecord()            // Select 'createRecord' operation
    ->forge()                   // Initialize the request builder
    ->record($post)             // Add content
    ->send();                   // Execute the request
  • 🏠 Home
    Introduction to the SDK and its features

  • 🚀 Quick Start
    Get started quickly with the basics of using the Bluesky SDK

  • ⚙️ Installation
    Step-by-step guide to installing the SDK

  • 🛠️ Architecture Overview
    Learn about the SDK's structure and design principles

  • 📖 BskyFacade
    Simplify API interactions with the facade

  • 💾 Serialization
    Serialize and deserialize data effectively

  • 🔄 Session Management
    Manage authentication and session reuse

  • 🧹 Casting
    Explore type-safe response casting in the SDK

  • 💡 Examples
    Practical usage examples for various features

Clone this wiki locally