Skip to main content

用于向 Pax8 合作伙伴 API 发出 API 请求的 Python 包

项目描述

Pax8 合作伙伴 API 库

这是 Pax8 合作伙伴 API 的 python 实现。它仍在进行中,但可以使用。请报告您在问题下遇到的任何错误,或提交拉取请求,我会修复它。

功能性

以下部分概述了到目前为止已实现的功能,以及仍有待实现的路线图。API 实现和官方文档之间存在一些差异,请参阅 Pax8 API 错误部分了解更多信息。

一般的

  • 获取访问令牌
  • 访问令牌缓存(到磁盘)
  • <strike>Access Token Caching (To Redis/Memcache)</strike> (To Do)
  • <strike>加密访问令牌缓存</strike>(待办事项)
  • <strike>自动限速</strike>(待办事项)

API 令牌缓存

从 Pax8 收到的用于交换 client_id 和 secret 的 API 令牌是一个相对长寿命的令牌,因此存在将其缓存到磁盘的选项(将来还会缓存到 redis 和 memcache)。出于安全原因,默认情况下不会这样做,但可以通过将 cache_token 参数设置为 true 并将 cache_location 参数设置为您希望保存文件的位置来启用。令牌当前加密,因此建议仅在您是机器的唯一用户时使用此选项。默认保存位置在用户主文件夹中。

API 资源

被击中的资源尚未实施。标记为 Experimental 的资源是未记录的 Pax8 API 的一部分,请参阅下面的更多信息。

  • client.Company

    • .list(filter=filters.CompanyFilter)
    • .get(id: uuid)
    • <罢工> .create(company: types.Company)</罢工>
    • .get_ms_tenant_id(id: uuid) 实验性
    • .list_contacts(id: uuid)
    • .get_contact(id: uuid, contact_id: uuid)
    • <罢工> .create_contact(contact: types.Contact)</罢工>
    • <罢工> .update_contact(contact: types.Contact)</罢工>
    • <罢工> .delete_contact(id: uuid, contact_id: uuid)</罢工>
  • client.Product

    • .list(filter: filters.ProductFilter)
    • .get(id: uuid)
    • .list_provisioning_details(id: uuid)
    • .list_dependencies(id: uuid)
    • .list_pricing(id: uuid)
  • client.Order

    • .list(filter: filters.OrderFilter)
    • .get(id: uuid)
    • <罢工> .create(order: types.Order)</罢工>
  • client.Subscription

    • .list(filter: filters.SubscriptionFilter)
    • .get(id: uuid)
    • .get_history(id: uuid)
    • <罢工> .update(subscription: types.Subscription)</罢工>
    • <罢工> .delete(id: uuid)</罢工>
    • .list_usage_summaries(id: uuid, filter: filters.UsageSummaryFilter)
  • client.Invoice

    • .list(filter: filters.InvoiceFilter)
    • .get(id: uuid)
    • .list_items(id: uuid, filter: filters.InvoiceItemFilter)
  • client.UsageSummary

    • .list_for_subscription(id: uuid, filter: filters.UsageSummaryFilter)
    • .get(id: uuid)
    • .list_usage_lines(id: uuid, filter: filters.UsageSummaryLineFilter)

V3 API 资源(未记录的 API)

有几个未记录的 API 用于实现 Pax8 合作伙伴门户 ( https://app.pax8.com ) 的功能,这些 API 已在此库中实现,由于其未记录的性质,在上面标记为实验性的。这些 API 不保证是稳定的,并且可能随时更改。使用风险自负。

如果您希望实现任何未记录的 API,请打开一个问题,我会尽快处理。您可以在此处找到可用端点的完整列表:https ://app.pax8.com/p8p/api/v3/

安装

来自 PyPi

pip3 install pax8

从源头

git clone https://github.com/scheibling/py-pax8.git
cd py-pax8
python3 setup.py install

用法

创建 API 令牌

为了能够使用 API,您必须首先在 Pax8 合作伙伴应用程序 ( https://app.pax8.com ) 中创建一个令牌。为了能够看到执行此操作的选项,您必须首先在工具 -> 合作伙伴外壳 -> Pax8 合作伙伴 API 合作伙伴外壳下注册一个合作伙伴外壳。完成此操作后,您可以在个人资料图片 -> 编辑个人资料 -> 开发人员应用程序 -> 创建下创建一个新的客户端 ID 和密码。

使用示例

导入库和检索资源

from pax8 import Pax8Client
from pax8 import filters
from pax8 import enums

client = Pax8Client(
    client_id='your_client_id',
    client_secret='your_client_secret',
    cache_token=True,
    cache_location='~/pax8_token.json'
)

# List all customers (companies)
client.Company.list()

# List all customers (companies) with pagination and the following options
# First Page
# Page Size 10
# Sort by Name (Ascending)
# Filter by city = 'New York'
companies = client.Company.list(
    filters.CompanyFilter(
        page=0,
        size=10,
        sort=enums.CompanySortBy.NAME,
        sort_direction=enums.SortDirection.ASCENDING,
        city='New York'
    )
)

# Recursively get all contacts and the MS Partner ID for the companies retrieved above
for company in companies:
    print(f'Company: {company.name}')
    print(f'MS Partner ID: {client.Company.get_ms_tenant_id(company.id)}')
    print('Contacts:')
    for contact in client.Company.list_contacts(company.id):
        print(f'\t{contact.first_name} {contact.last_name} ({contact.phoneNumber})')

Pax8 API 错误

订阅

  • 订阅不包含文档中所述的“commitmentTerm”字段,而是包含“commitment”字段

订单

  • 当从 API 检索到订单并且合作伙伴下订单时,API 返回“Pax8Partner”而不是“Pax8 Partner”。创建新订单时,必填值为“Pax8 Partner”。

联系人

  • 除了名为“电话”的字段外,联系人还包含一个未记录的字段“电话号码”。
  • 联系人包含一个未记录的字段“phoneCountryCode”
  • 联系人包含一个未记录的字段“phoneCountryCallingcode”

发票

  • InvoiceItem.rateType 值记录为小写,但在 API 中是首字母大写(至少对于 Flat,无法验证其他值)

使用总结

  • List Usage Summary Lines 没有为 API 调用指定任何分页选项,但 API 确实支持分页。

致谢

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pax8-0.5.tar.gz (25.8 kB 查看哈希

已上传 source

内置分布

pax8-0.5-py3-none-any.whl (24.6 kB 查看哈希

已上传 py3