@b10cks/client
v1.2.2
Published
Core b10cks API client
Readme
@b10cks/client
Core API client for b10cks, the open-source headless CMS with a composable block-based content API.
Installation
npm install @b10cks/clientUsage
import { ApiClient, createB10cksDataApi } from '@b10cks/client'
const client = new ApiClient({
baseUrl: 'https://api.b10cks.com/api',
token: 'your-access-token',
fetchClient: fetch,
})
const dataApi = createB10cksDataApi(client)
// Fetch blocks
const blocks = await dataApi.getBlocks()
// Fetch the first page of contents
const contents = await dataApi.getContents({ vid: 'published', page: 1, per_page: 20 })
// Fetch all contents across all pages
const allContents = await dataApi.getContents(
{ vid: 'published', per_page: 100 },
{ allPages: true }
)
// Fetch a specific content entry
const content = await dataApi.getContent('home', { vid: 'draft' })
// Fetch specific datasource entries
const entries = await dataApi.getDataEntries('my-datasource')
// Fetch sitemap entries
const sitemap = await dataApi.getSitemap({ vid: 'published' })Features
- Simple HTTP Client: Type-safe API client for b10cks endpoints
- Framework-Agnostic Data API: Shared
B10cksDataApiused by all framework SDKs - Pagination Support: Fetch a specific page by default, or opt into fetching all pages
- Revision Tracking: Built-in support for revision (RV), with VID passed explicitly in request params
- Flexible Fetch: Use browser fetch, Node fetch, or a custom fetch implementation
API Methods
get<T>(endpoint, params)- Fetch single page of datagetAll<T>(endpoint, params)- Fetch all data across pages
Data API Methods
getContent(fullSlug, params)- passvidinparamswhen neededgetContents(params, options)-paramssupportspageandper_page; setoptions.allPagestotrueto fetch every pagegetBlocks(params, options)-paramssupportspageandper_pagegetDataEntries(source, params, options)-paramssupportspageandper_pagegetDataSources(params, options)-paramssupportspageandper_pagegetSitemap(params, options)- passvidinparams;paramsalso supportspageandper_pagegetSpace(params)getRedirects(params, forceRefresh | { forceRefresh?, allPages? })-paramssupportspageandper_pagegetConfig(options)syncRevision(fallbackRv)
Supported Endpoints
blocks- Content blockscontents- Content itemscontents/{id}- Specific contentdatasources- Data sourcesdatasources/{id}/entries- Datasource entriessitemap- Sitemap entriesspaces/me- Current space info
License
MIT
