跳到主要内容

API 客户端 (Python)

Python API 客户端帮助您执行 Labii API 调用,例如认证、获取、更新、提交和删除。

使用方法 ​

  1. 安装 Labii SDK
pip install labii-sdk
  1. 导入包
from labii_sdk.api_client import APIObject
  1. 初始化 API 对象
api = APIObject()

初始化 API ​

在初始化 API 时,可以自定义以下参数:

  • base_url,服务器基础 URL,默认为 https://www.labii.dev。如果您使用的是不同的数据中心,请确保更改 base_url 设置。
  • api_key,用于认证的 API 密钥。
  • organization__sid,您的组织 sid。您可以通过登录 Labii (https://www.labii.com/login/),然后进入侧边菜单 -> 设置 -> 组织 -> Sid 找到它。
api = APIObject(
base_url="https://www.labii.dev",
api_key="xxx"
organization__sid=None
)

获取列表 URL ​

使用此功能创建 列表视图 的 URL。

  • app 和 model(必填),用于限制 Labii 中数据类型的 App 和对象。更多信息请参见 https://docs.labii.com/api/overview#objects。
  • level(默认为 "organization"),用于检索记录的范围。更多信息请参见 https://docs.labii.com/api/overview#levels。
  • sid(默认为 "organization__sid"),静态且加密的 Labii 对象 ID。它必须与层级匹配。
  • serializer(默认为 "list"),返回数据字段的范围。更多信息请参见 https://docs.labii.com/api/overview#serializer。
    • name,仅返回 sid 和 name,速度非常快
    • list,返回对象的选定字段,速度较快
    • detail,返回对象的所有字段,速度较慢
  • query(可选),附加查询以限制结果。
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"
)

获取详情 URL ​

使用此功能创建 详情视图 的 URL。

  • app 和 model(必填),与上述相同
  • sid(必填),对象的 sid。
  • query(可选),在查询时传递附加参数。
url = api.get_detail_url(
app="tables",
model="section",
sid="xxx",
query=""
)

获取请求头 ​

返回 API 功能所需的请求头。

  • is_authorized(默认为 True),如需使用不带认证信息的请求头,请设置 is_authorized=False。
headers = api.get_headers(
is_authorized=True
)

登录 ​

获取认证令牌。

  • api.login()
    • 如果用户尚未提供凭证,将提示用户输入电子邮件/密码。
    • 如果已经提供了电子邮件或密码,将获得新的令牌。
  • api.login(email=xxx, password=xxx)
    • 使用提供的电子邮件/密码登录。

检查令牌 ​

Labii 强制执行 过度会话超时 安全策略(美国 CNSS - CNSSI No. 1253 第 AC-11 节)。如果您的账户在 30 分钟内没有活动,将被注销。如果您的应用程序持续运行或在 30 分钟无活动后执行查询,请调用此函数生成新的令牌。
注意: 要使该功能正常工作,您必须首先运行 api.login()。

labii.check_token()

提交 ​

用于 Labii API 的 POST 请求函数。

  • url (str),要提交的 URL。使用 get_list_url 生成标准 URL。
  • data (dict),要提交的 JSON 字典数据。更多信息请参见 https://docs.labii.com/api/methods
  • is_authorized (默认为 True),是否使用授权令牌。
api.post(
url="xxx",
data={},
is_authorized=True
)

更新 ​

用于 Labii API 的 PATCH 请求函数。

  • url (str),要提交的 URL。使用 get_detail_url 生成标准 URL。
  • data (dict),要提交的 JSON 字典数据。更多信息请参见 https://docs.labii.com/api/methods
  • is_authorized (默认为 True),是否使用授权令牌。
api.patch(
url="xxx",
data={},
is_authorized=True
)

获取 ​

用于 Labii API 的 GET 请求函数。

  • url (str),要提交的 URL。使用 get_list_url 或 get_detail_url 生成标准 URL。
  • all_pages (bool, 默认=False),是否返回所有页面。当为 False 时,仅返回第一页的数据。仅适用于列表视图。
  • is_authorized (默认为 True),是否使用授权令牌。
api.get(
url="xxx",
all_pages=False
is_authorized=True
)

删除 ​

用于 Labii API 的 DELETE 请求函数。

  • url (str),要提交的 URL。使用 get_detail_url 生成标准 URL。
  • is_authorized (默认为 True),是否使用授权令牌。
api.delete(
url="xxx",
is_authorized=True
)