Megio API
Megio API je JavaScript & TypeScript knihovna, kterou lze použít pro REST API komunikaci s Megio panelem. Knihovna obsahuje veškeré potřebné metody - autentizace, vytváření dat, čtení, úprava, mazání, práce s oprávněními, apod. Striktní typovost této knihovny vám poskytne výbornou podporu v IDE. Díky této podpoře nebudete muset zkoumat celé REST API Megio panelu, ale metody se vám budou samy nabízet přímo při psaní kódu.
Instalace
yarn add megio-api
Příklad použití
import { megio, setup } from 'megio-api'
// Nastavení endpointu a error handleru
setup('http://localhost:8090/', errorHandler)
// Přepsání výchozího error handleru, jenž se volá při
// chybě v HTTP odpovědi (status < 200 || status > 299)
function errorHandler(response: Response, errors: string[]) {
console.log(response.status, errors)
}
// Přihlášení uživatele pomocí emailu
const resp = await megio.auth.loginByEmail('jz@strategio.dev', 'Test1234', 'user')
console.log(resp) // Promise<IRespLoginByEmail>
Typy pro TS
import type { ... } from 'megio-api/types'
import type { ... } from 'megio-api/types/auth'
import type { ... } from 'megio-api/types/resources'
import type { ... } from 'megio-api/types/collections'
Metody pro práci s API
import { megio } from 'megio-api'
// Pošle request na Megio API
const resp = await megio.fetch(customUri, customJsonBody)
// Přihlášení a odhlášení
const resp = await megio.auth.loginByEmail(...params)
const resp = await megio.auth.revokeToken(...params)
// Práce s kolekcemi
const resp = await megio.collections.create(...params)
const resp = await megio.collections.update(...params)
const resp = await megio.collections.read(...params)
const resp = await megio.collections.readAll(...params)
const resp = await megio.collections.delete(...params)
// Extra metody pro kolekce
const resp = await megio.collectionsExtra.navbar(...params)
const resp = await megio.collectionsExtra.creatingForm(...params)
const resp = await megio.collectionsExtra.updatingForm(...params)
// Správa oprávnění a resources
const resp = await megio.resources.readAll(...params)
const resp = await megio.resources.update(...params)
const resp = await megio.resources.createRole(...params)
const resp = await megio.resources.updateRole(...params)
const resp = await megio.resources.removeRole(...params)
Metody pro práci s uživatelem
// Uživatel
megio.auth.logout() // Odhlášení
megio.auth.user.get() // Informace o přihlášeném uživateli
// Role
megio.auth.user.getRoles()
megio.auth.user.hasRole('role')
// Resources
megio.auth.user.getResources()
megio.auth.user.hasResource('res-x')
megio.auth.user.hasAllOfResources(['res-x', 'res-y'])
megio.auth.user.hasAnyOfResources(['res-x', 'res-y'])
Registrace storage adaptéru
import { megio, setup } from 'megio-api'
import type { IStorage } from 'megio-api/types'
const storageData = new Map<string, string>()
const storage: IStorage = {
getItem: (key: string) => storageData.get(key) || null,
setItem: (key: string, value: string) => storageData.set(key, value),
removeItem: (key: string) => storageData.delete(key)
}
setup('http://localhost:8090/', () => {}, storage)
// Po přihlášení se token uloží do definovaného storage
const resp = await megio.auth.loginByEmail('jz@strategio.dev', 'Test1234', 'user')