Browser library to interact with Apolitical's APIs
npm install @apolitical/sdkBrowser library to interact with Apolitical's APIs
Requires the following to run:
- [node.js][node] 16.13.0+
- [yarn][yarn]
[node]: https://nodejs.org/en/download/
[yarn]: https://classic.yarnpkg.com/en/docs/install
Install with yarn:
``sh`
yarn add @apolitical/sdk
In the project directory, you can run:
Runs the test (and the interactive mode can be enabled with --watchAll).
Builds the library for production to the build folder.
It correctly bundles the code on production mode and optimizes the build for the best performance.
The recommended way to use @apolitical/sdk is to load the SDK first:
`js
const loadSdk = require('@apolitical/sdk');
const sdk = loadSdk({
origin: window.origin || window.location.origin,
errorsContext: {
apiKey: decodeBase64(process.env.REACT_APP_GCP_ERRORS_API_KEY),
serviceName: 'some-service',
},
});
`
And then, you can use all the functionality provided by the SDK. For example:
`js`
sdk.people.users.read('me').then((result) => {
console.info('User:', result);
});
Here's the library's folders structure:
``
/lib
/apis
/api-1
/resources
/handlers
/contentful
/content-type-1
/helpers
/solvers
Under /lib/apis/ we implement functionality to directly interact with the Apolitical APIs.
Each API will have its own folder, for example, /lib/apis/people/ for People API.
Inside the API folder itself, there are two other folders
- /lib/apis/people/resources: The resources folder holds each RESTful resource on the API and implements CRUD operations/lib/apis/people/handlers
- : The handlers folder holds functions that require calling the same API more than one time (or in some particular way that cannot be done by using the CRUD operations)
Under /lib/contentful/ we implement functionality to interact with Contentful Delivery (and Preview) API.
Each content type will have it's own folder, for example, /lib/contentful/questions/ for the Q&A Question content type.
Internally, the functionality will be implemented with the help of the @apolitical/content module.
Under /lib/helpers/ we implement reusable functionality that helps implementing internal logic within the SDK.
Under /lib/solvers/ we implement high level functionality based on the functionality provided by internal APIs and Contentful.
For example, the buildQuestion.js` is a function that reads a question from Contentful, and then, read the author data from the People API.