appbase-web-sdk
v22.5.0
Published
AppBase SDK for AppBase API projects
Readme
AppBase Web SDK
This SDK is compatible with AppBase server version latest.
AppBase SDK for integrating your app with AppBase APIs and tools.
Installation
NPM
To install via NPM:
npm install appbase-web-sdk --save --registry "$APPBASE_NPM_REGISTRY_URL"If you're using a bundler (like Rollup or webpack), you can import the AppBase module when you need it:
import { Client, Account } from "appbase-web-sdk";Getting Started
Add your Web Platform
For you to init your SDK and interact with AppBase services you need to add a web platform to your project. To add a new platform, go to your AppBase console, choose the project you created in the step before and click the 'Add Platform' button.
From the options, choose to add a Web platform and add your client app hostname. By adding your hostname to your project platform you are allowing cross-domain communication between your project and the AppBase API.
Init your SDK
Initialize your SDK with your AppBase server API endpoint and project ID which can be found in your project settings page.
// Init your Web SDK
const client = new Client();
client
.setEndpoint('http://localhost/v1') // Your AppBase Endpoint
.setProject('455x34dfkj') // Your project ID
;Make Your First Request
Once your SDK object is set, access any of the AppBase services and choose any request to send. Full documentation for any service method you would like to use can be found in your SDK documentation or in the API References section.
const account = new Account(client);
// Register User
account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien")
.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});
Full Example
// Init your Web SDK
const client = new Client();
client
.setEndpoint('http://localhost/v1') // Your AppBase Endpoint
.setProject('455x34dfkj')
;
const account = new Account(client);
// Register User
account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien")
.then(function (response) {
console.log(response);
}, function (error) {
console.log(error);
});Type Safety with Models
The AppBase Web SDK provides type safety when working with database documents through generic methods. Methods like listDocuments, getDocument, and others accept a generic type parameter that allows you to specify your custom model type for full type safety.
TypeScript:
interface Book {
name: string;
author: string;
releaseYear?: string;
category?: string;
genre?: string[];
isCheckedOut: boolean;
}
const databases = new Databases(client);
try {
const documents = await databases.listDocuments<Book>(
'your-database-id',
'your-collection-id'
);
documents.documents.forEach(book => {
console.log(`Book: ${book.name} by ${book.author}`); // Now you have full type safety
});
} catch (error) {
console.error('AppBase error:', error);
}JavaScript (with JSDoc for type hints):
/**
* @typedef {Object} Book
* @property {string} name
* @property {string} author
* @property {string} [releaseYear]
* @property {string} [category]
* @property {string[]} [genre]
* @property {boolean} isCheckedOut
*/
const databases = new Databases(client);
try {
/** @type {Models.DocumentList<Book>} */
const documents = await databases.listDocuments(
'your-database-id',
'your-collection-id'
);
documents.documents.forEach(book => {
console.log(`Book: ${book.name} by ${book.author}`); // Type hints available in IDE
});
} catch (error) {
console.error('AppBase error:', error);
}Tip: You can use the appbase types command to automatically generate TypeScript interfaces based on your AppBase database schema. Learn more about type generation.
Error Handling
The AppBase Web SDK raises an AppBaseException object with message, code and response properties. You can handle any errors by catching the exception and present the message to the user or handle it yourself based on the provided error information. Below is an example.
try {
const user = await account.create(ID.unique(), "[email protected]", "password", "Walter O'Brien");
console.log('User created:', user);
} catch (error) {
console.error('AppBase error:', error.message);
}Learn more
You can use the following resources to learn more and get help
Contribution
This library is generated from the AppBase API specs in this repository. See docs/sdks/monorepo-generation.md for the supported generation, versioning, and publishing workflow.
License
Please see the BSD-3-Clause license file for more information.
