onfleet的python api包装包

pyonfleet的Python项目详细描述


onfleet python包装器

Travis (.org)GitHubPyPIGitHub top language

用另一种语言阅读此文档:English正體中文

如果您有任何问题,请通过提交问题here或联系support@onfleet.com

目录

概要

onfleet python库提供了对onfleet api的方便访问。

安装

pip install pyonfleet

用法

在使用api包装器之前,需要从组织管理员处获取api密钥。api键的创建和集成是通过Onfleet dashboard执行的。

要进行身份验证,您还需要在工作目录下创建一个名为.auth.json的文件,这是您存储api凭据的位置。

.auth.json的格式如下所示:

{"API_KEY":"<your_api_key>",}

您还可以选择不在此处存储api密钥,而是动态使用它。

创建onfleet对象后,您将获得对所有api端点的访问权,如Onfleet API documentation中所述。下面是一些使用案例:

fromonfleetimportOnfleetapi=Onfleet()# if .auth.json was providedapi=Onfleet(api_key="<your_api_key>")# if no .auth.json was provided

节流

速率限制是由api强制实施的,其阈值为20个请求/秒,跨越组织的所有api密钥,了解更多信息here

反应

api包装器返回Response object的主体。

支持的CRUD操作

onfleet api的基本url是https://onfleet.com/api/v2,下面是每个端点支持的crud操作:

^{}GETPOSTPUTDELETE
Adminsget()create(body)update(id, body)deleteOne(id)
Containersget(workers=id), get(teams=id), get(organizations=id)xupdate(id, body)x
Destinationsget(id)create(body)xx
Hubsget()xxx
Organizationget(), get(id)xinsertTask(id, body)x
Recipientsget(id), get(name), get(phone)create(body)update(id, body)x
Tasksget(queryParams), get(id), get(shortId)create(body), clone(id), forceComplete(id), batch(body), autoAssign(body)update(id, body)deleteOne(id)
Teamsget(), get(id)create(body)update(id, body), insertTask(id, body)deleteOne(id)
Webhooksget()create(body)xdeleteOne(id)
Workersget(), get(queryParams), get(id), getByLocation(queryParams), getSchedule(id)create(body), setSchedule(id, body)update(id, body), insertTask(id, body)deleteOne(id)

获取请求

要获取终结点内的所有文档:

get()
get()的示例
api.workers.get()api.workers.get(queryParams="")

选项要对某些端点使用查询参数,请参阅支持查询参数的端点的API文档:

api.workers.get(queryParams="phones=<phone_number>")orapi.workers.get(queryParams={"phones":"<phone_number>"})

若要在终结点内获取某个文档,请指定要搜索的参数:

get(param=<some_param>)
get(param)的示例
api.workers.get(id="<24_digit_id>")api.workers.get(id="<24_digit_id>",queryParams={"analytics":"true"})api.tasks.get(shortId="<shortId>")api.recipients.get(phone="<phone_number>")api.recipients.get(name="<recipient_name>")api.containers.get(workers="<worker_id>")api.containers.get(teams="<team_id>")api.containers.get(organizations="<org_id>")

要按位置获取驱动程序,请使用getByLocation函数:

getByLocation(queryParams=<some_param>)
GetByLocation示例:
params={"longitude":"-122.4","latitude":"37.7601983","radius":"6000"}api.workers.getByLocation(queryParams=params)

发布请求

在端点内创建文档:

create(body="<body_object>")
create()的示例
driver={"name":"A Swartz Test","phone":"+16173428853","teams":["<a_team_id>","<a_team_id> (optional)..."],"vehicle":{"type":"CAR","description":"Tesla Model S","licensePlate":"FKNS9A","color":"purple",}}api.workers.create(body=driver)

扩展POST请求包括任务终结点上的cloneforceCompletebatchCreateautoAssign和工作终结点上的setSchedule

api.tasks.clone(id="<24_digit_id>")api.tasks.forceComplete(id="<24_digit_id>",body="<completion_details>")api.tasks.batchCreate(body="<task_object_get>")api.tasks.autoAssign(body="<auto_assign_object>")api.workers.setSchedule(id="<24_digit_id>",body="<schedule_object>")

有关更多详细信息,请查看有关cloneforceCompletebatchCreateautoAssignsetSchedule的文档。

发出请求

要在终结点内更新文档:

update(id="<24_digit_id>",body="<body_object>")
update()的示例
updateBody={"name":"New Driver Name",}api.workers.update(id="<24_digit_id>",body=updateBody)
updateschedule()示例
api.workers.updateSchedule(id="<24_digit_id>",body=newSchedule)

有关详细信息,请查看updateSchedule上的文档

inserttask()的示例
api.workers.insertTask(id="kAQ*G5hnqlOq4jVvwtGNuacl",body="<body_object>")

删除请求

删除端点内的文档:

deleteOne(id="<24_digit_id>")
deleteOne()的示例
api.workers.deleteOne(id="<24_digit_id>")

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
请求响应模式的java JMS   java如何从SeleniumWebDriver中的“Span Type下拉列表”中选择值   java JPA相当于Hibernate的@Generated(GenerationTime.ALWAYS)   java ActiveMQ查询:如何启动   java如何在jsp文件中使用freemarker标记库?   java如何在TabsLayout中用另一个片段替换一个片段的内容?   国际化如何理解Java教程国际化定制资源包加载示例?   XML配置中的java spring log4j无法为日志信息创建文件   oracle11g JDK 6:有没有办法运行一个新的java进程来执行指定类的主方法   java在avro模式中使用“default”   缺陷跟踪我在哪里可以提交关于FOSS Java Sound实施组织的缺陷报告。类路径。冰岛。pulseaudio。Pulseaudiosourcedaline?   编码Java系统。在和系统中。Sun/Oracle和IBM JVM解决方案在读写标准字节数组方面存在差异   java如何将列表项作为查询参数添加到字符串url中?   将自定义库导出到可导入jar文件java