API Client (python)
Python API clients help you perform Labii API calls, such as authentication, get, patch, post, and delete.
Usage
- Install the Labii SDK
pip install labii-sdk
- Import the package
from labii_sdk.api_client import APIObject
- 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 thebase_urlsetting.api_key, the API Key to get authenticated.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",
api_key="xxx"
organization__sid=None
)
Get list URL
Use this function to create a url for list view.
appandmodel(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#levelssid(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.
appandmodel(required), same as abovesid(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 toTrue), To use a header without authentication information, setis_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 withget_list_url.data(dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methodsis_authorized(default toTrue), 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 withget_detail_url.data(dict), a JSON dict data to post. Learn more at https://docs.labii.com/api/methodsis_authorized(default toTrue), 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 withget_list_urlorget_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 toTrue), 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 withget_detail_url.is_authorized(default toTrue), whether authorized tokens should be used.
api.delete(
url="xxx",
is_authorized=True
)