Architecture Overview

Scholarly Providers is organised into layered modules that build on shared contracts:

Data Flow

  1. Client code requests an adapter from AdapterFactory (directly or via Laravel bindings).
  2. The adapter constructs HTTP requests through Core\Client, which applies retry/backoff and optional caching via CacheLayer.
  3. Provider responses are transformed by Core\Normalizer into canonical arrays shared across adapters.
  4. Higher-level modules (tests, exporter, Laravel services) operate on the normalized contract with no provider-specific branching.

Why this architecture beats raw HTTP

Extensibility

For detailed provider capabilities and tips, see Provider Capabilities.


Core Concepts: Contracts Architecture Getting Started
Features: Graph Analytics Laravel Integration Provider Adapters
Development: Extending GitHub Repository  
External Resources: OpenAlex API Semantic Scholar API Crossref API