microgen-v3-sdk v0.13.2
Microgen SDK
This is the Official Node JS and Browser client/library for Microgen API. Visit https://microgen.id. More information about the product and see documentation at http://docs.microgen.id for more technical details.
API Documentation
Please check Microgen API Reference.
Installation
Node.js
To install microgen in a node project:
npm install --save microgen-v3-sdk
Usage
Configure package with your account's API key obtained from your Microgen Dashboard.
const { MicrogenClient } = require('microgen-v3-sdk');
const microgen = new MicrogenClient({
apiKey: '*******************',
});
Authentication
Use microgen auth services for manage your user.
Register
const { user, token, error } = await microgen.auth.register({
firstName: 'Ega',
lastName: 'Radiegtya',
email: 'user@gmail.com',
password: 'password',
});
Login
const { user, token, error } = await microgen.auth.login({
email: 'user@gmail.com',
password: 'password',
});
User
const { user, error } = await microgen.auth.user();
// Get user with filter:
// lookup
const { user, error } = await microgen
.auth
.user({ filterKey: filterValue, ... });
Update
const { user, error } = await microgen.auth.update({ firstName: 'Ega' });
Logout
const { user, token, error } = await microgen.auth.logout();
Database
Create
const { data, error } = await microgen.service('posts').create({
name: 'Post 1',
notes: 'Hello microgen',
});
Create Many
const { data, error } = await microgen.service('posts').createMany([
{
name: 'Post 1',
notes: 'Hello microgen',
},
{
name: 'Post 2',
notes: 'Hello world',
},
]);
Get
const { data, error } = await microgen
.service('posts')
.getById('605a251d7b8678bf6811k3b1');
// Get record with filters:
// select
// lookup
const { data, error } = await microgen
.service('posts')
.getById('605a251d7b8678bf6811k3b1', { filterKey: filterValue, ... });
Update
const { data, error } = await microgen
.service('posts')
.updateById('605a251d7b8678bf6811k3b1', {
notes: 'Hello world',
});
Update Many
const { data, error } = await microgen.service('posts').updateMany([
{
_id: '605a251d7b8678bf6811k3b1',
notes: 'Hello world',
},
{
_id: '605a251d7b8678bf6811k3b2',
notes: 'Hello microgen',
},
]);
Delete
const { data, error } = await microgen
.service('posts')
.deleteById('605a251d7b8678bf6811k3b1');
Delete Many
const { data, error } = await microgen
.service('posts')
.deleteMany(['605a251d7b8678bf6811k3b1', '605a251d7b8678bf6811k3b2']);
Link
const { data, error } = await microgen
.service('posts')
.link('605a251d7b8678bf6811k3b1', {
categories: '61d26e8e2adb12b85c33029c',
});
Unlink
const { data, error } = await microgen
.service('posts')
.unlink('605a251d7b8678bf6811k3b1', {
categories: '61d26e8e2adb12b85c33029c',
});
Find
const { data, error } = await microgen.service('posts').find();
// sort
// 1 = ascending
// -1 = descending
const { data, error } = await microgen
.service('posts')
.find({ sort: [{ name: 1 }] });
// skip
const { data, error } = await microgen.service('posts').find({ skip: 10 });
// limit
const { data, error } = await microgen.service('posts').find({ limit: 10 });
// select
const { data, error } = await microgen
.service('posts')
.find({ select: ['name'] });
// lookup into multiple link to record fields
const { data, error } = await microgen
.service('posts')
.find({ lookup: ['categories'] });
// lookup into all link to record fields
const { data, error } = await microgen.service('posts').find({ lookup: '*' });
// lookup into all link to record fields but only show the ids
const { data, error } = await microgen
.service('posts')
.find({ lookup: { _id: '*' } });
// lookup into all link to record fields and show all data
const { data, error } = await microgen
.service('posts')
.find({ lookup: { '*': '*' } });
// where
const { data, error } = await microgen
.service('posts')
.find({ where: { name: 'Ega' } });
// not equal
const { data, error } = await microgen
.service('posts')
.find({ where: { name: { $ne: 'Ega' } } });
// contains
const { data, error } = await microgen
.service('posts')
.find({ where: { name: { $contains: 'Ega' } } });
// not contains
const { data, error } = await microgen
.service('posts')
.find({ where: { name: { $notContains: 'Ega' } } });
// include
const { data, error } = await microgen
.service('posts')
.find({ where: { name: { $in: ['Ega'] } } });
// not include
const { data, error } = await microgen
.service('posts')
.find({ where: { name: { $nin: ['Ega'] } } });
// less then
const { data, error } = await microgen
.service('posts')
.find({ where: { total: { $lt: 10 } } });
// less then equal
const { data, error } = await microgen
.service('posts')
.find({ where: { total: { $lte: 10 } } });
// greater then
const { data, error } = await microgen
.service('posts')
.find({ where: { total: { $gt: 10 } } });
// greater then equal
const { data, error } = await microgen
.service('posts')
.find({ where: { total: { $gte: 10 } } });
Count
// count all records
const { data, error } = await microgen.service('posts').count();
// count with filters
const { data, error } = await microgen
.service('posts')
.count({ filterKey: filterValue, ... });
Storage
Upload
// from client
const file = event.target.files[0];
const { data, error } = await microgen.storage.upload(file);
// from server
const file = req.files[0];
const { data, error } = await microgen.storage.upload(
file.buffer,
file.originalname,
);
Realtime
Event
*
CREATE_RECORD
UPDATE_RECORD
DELETE_RECORD
LINK_RECORD
UNLINK_RECORD
Get tableId
by Table Name
const { tableId, error } = await microgen.realtime.getTableId('posts');
Subscribe
microgen.realtime.subscribe(tableId, { event: '*' }, (message) => {
if (message.error) {
console.log(message.error);
return;
}
console.log(message.event, message.payload);
});
Unsubscribe
microgen.realtime.unsubscribe(tableId);
Field
Find
const { data, error } = await microgen.service('posts').field.find();
Get
const { data, error } = await microgen
.service('posts')
.field.getById('605a251d7b8678bf6811k3b1');
CDN
You can now use plain <script>
s to import microgen from CDNs, like:
<script src="https://cdn.jsdelivr.net/npm/microgen-v3-sdk"></script>
Then you can use it from a global microgen
variable:
<script>
const { createClient } = microgenV3;
const client = createClient({
apiKey: '*******************',
});
client
.service('posts')
.find()
.then((res) => {
if (res.error) {
console.log(res.error);
return;
}
console.log(res);
});
</script>
11 days ago
13 days ago
13 days ago
19 days ago
19 days ago
24 days ago
24 days ago
24 days ago
24 days ago
24 days ago
27 days ago
27 days ago
27 days ago
2 months ago
2 months ago
3 months ago
4 months ago
4 months ago
6 months ago
6 months ago
6 months ago
7 months ago
7 months ago
6 months ago
9 months ago
8 months ago
9 months ago
9 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
9 months ago
9 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago