@roadiz/abstract-api-client v3.1.4
abstract-api-client
Abstract API Typescript client interfaces and SDK.
Based on Axios HTTP client.
Usage
Version 3.x should only be used with Roadiz v2.1+, for older versions use version 2.x
yarn add @roadiz/abstract-api-clienttsconfig.json
{
"compilerOptions": {
"types": [
"@roadiz/abstract-api-client"
]
}
}Customize Roadiz API client against your own API schema
- Download latest
d.tsdefinition file from Roadiz backoffice - Extend
RoadizApiclass
export default class MyAwesomeRoadizApi extends RoadizApi {
/*
* Page node-type
*/
getPages(params: RoadizRequestNSParams) {
return this.get<HydraCollection<NSPage>, RoadizRequestNSParams>('pages', { params })
}
/*
* BlogPost node-type
*/
getBlogPosts(params: RoadizRequestNSParams) {
// Additional default params…
params = {
order: {
publishedAt: 'DESC'
},
...params,
}
return this.get<HydraCollection<NSBlockPost>, RoadizRequestNSParams>('blog_posts', { params })
}
}Fetch all URLs for a sitemap
const api = new RoadizApi(process.env.API_BASE_URL,)
return api.fetchAllUrlsForLocale('fr').then((urls: Array<string>) => {
// build your sitemap
})Get all alternative URLs for a node-source
Alternative links are useful to build language navigation for each website page. It's based
on HTTP response header Link.
API getAlternateLinks method will return a Array<AlternateLink> from an AxiosResponse:
const api = new RoadizApi(process.env.API_BASE_URL)
api.getWebResponseByPath('/').then((response) => {
/*
* [{
* url: '/',
* locale: 'en'
* }, {
* url: '/fr',
* locale: 'fr'
* }]
*/
api.getAlternateLinks(response)
})Test
Tests use jest and require a working Roadiz headless API to fetch responses from. Copy .env.dist to .env
and fill your server credentials.
yarn
cp .env.dist .env
yarn test2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago