onfleet的python api包装包
pyonfleet的Python项目详细描述
onfleet python包装器
如果您有任何问题,请通过提交问题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操作:
^{ | GET | POST | PUT | DELETE |
---|---|---|---|---|
Admins | get() | create(body) | update(id, body) | deleteOne(id) |
Containers | get(workers=id), get(teams=id), get(organizations=id) | x | update(id, body) | x |
Destinations | get(id) | create(body) | x | x |
Hubs | get() | x | x | x |
Organization | get(), get(id) | x | insertTask(id, body) | x |
Recipients | get(id), get(name), get(phone) | create(body) | update(id, body) | x |
Tasks | get(queryParams), get(id), get(shortId) | create(body), clone(id), forceComplete(id), batch(body), autoAssign(body) | update(id, body) | deleteOne(id) |
Teams | get(), get(id) | create(body) | update(id, body), insertTask(id, body) | deleteOne(id) |
Webhooks | get() | create(body) | x | deleteOne(id) |
Workers | get(), 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请求包括任务终结点上的clone
、forceComplete
、batchCreate
、autoAssign
和工作终结点上的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>")
有关更多详细信息,请查看有关clone、forceComplete、batchCreate、autoAssign和setSchedule的文档。
发出请求
要在终结点内更新文档:
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)
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>")