API Client (javascript)
Labii API Client for javascript
Javascript API clients help you perform Labii API calls, such as authentication, get, patch, post, and delete.
THIS IS A DRAFT, THE API IS NOT READY.

Usage

  1. 1.
    Install the Labii SDK
pip install labii-sdk
  1. 1.
    Import the package
from labii_sdk.api_client import APIObject
  1. 1.
    Initial the API object
api = APIObject()

Initial API

During API initiation, the following parameters can be customized:
  • base_url, the server base url, defaults to https://www.labii.dev. If you are using a different data center, make sure to change the base_url setting.
  • email and password, the email or password to get authenticated. If no email or password is provided, a pop-up will appear.
  • organization__sid, your organization sid. You can find it by logging into Labii (https://www.labii.com/login/) and going to Side menu -> Settings -> Organization -> Sid
api = APIObject(
base_url="https://www.labii.dev",
email=None,
password=None,
organization__sid=None
)

Get list URL

Use this function to create a url for list view.
  • app and model (required), the app and object to limit the type of data in Labii. Learn more at https://docs.labii.com/api/overview#objects.
  • level (default to "organization"), the scope of records to retrieve. Learn more at https://docs.labii.com/api/overview#levels
  • sid (default to "organization__sid"), the static and encrypted Labii object id. It has to match with level.
  • serializer (default to "list"), the scope of fields of the return data. Learn more at https://docs.labii.com/api/overview#serializer
    • name, return only sid and name, very fast
    • list, return selected fields of the objects, fast
    • detail, return all fields of the objects, slow
  • query (optional), additional query to limit the results.
url = api.get_list_url(
app="tables",
model="section",
level="organization",
sid="xxx",
serializer='list',
query="is_archived=false"
)
# It can be simplified as:
url = api.get_list_url(
app="tables",
model="section"
)

Get detail URL

Use this function to create a url for detail view.
  • app and model (required), same as above
  • sid (required), the sid of the object.
  • query (optional), passing additional parameters during querying.
url = api.get_detail_url(
app="tables",
model="section",
sid="xxx",
query=""
)

Get headers

Return necessary headers for API functions.
  • is_authorized (default to True), To use a header without authentication information, set is_authorized=False.
headers = api.get_headers(
is_authorized=True
)

Login

Get authentication token.
  • api.login()
    • The user will be prompted to provide an email/password if they have not previously provided a credential.
    • When an email or password has already been provided, you will receive a new token.
  • api.login(email=xxx, password=xxx)
    • Login with a provided email/password.

Check token

Labii enforces the Excessive Session Timeout seurity (U.S. CNSS - CNSSI No. 1253 section AC-11). Your account will be logged out after 30 minutes of inactivity. Call this function to generate a new token if your application is continuously running or is performing queries after 30 minutes of inactivity. Note: For the function to work, you must run api.login() first.
labii.check_token()

Post

A function to do POST for labii api
  • url (str), the URL to post. Generate a standard URL with get_list_url.
  • data (dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methods
  • is_authorized (default to True), whether authorized tokens should be used.
api.post(
url="xxx",
data={},
is_authorized=True
)

Patch

A function to do PATCH for labii api
  • url (str), the URL to post. Generate a standard URL with get_detail_url.
  • data (dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methods
  • is_authorized (default to True), whether authorized tokens should be used.
api.patch(
url="xxx",
data={},
is_authorized=True
)

Get

A function to do GET for labii api.
  • url (str), the URL to post. Generate a standard URL with get_list_url or get_detail_url.
  • all_pages (bool, default=False), Whether all pages should be returned. When False, only return the data for the first page. Only applies to list views.
  • is_authorized (default to True), whether authorized tokens should be used.
api.get(
url="xxx",
all_pages=False
is_authorized=True
)

Delete

A function to do DELETE for labii api.
  • url (str), the URL to post. Generate a standard URL with get_detail_url.
  • is_authorized (default to True), whether authorized tokens should be used.
api.delete(
url="xxx",
is_authorized=True
)