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 Android Action_Edit Intent无法像以前一样调用App Gallery来编辑图片   确保JRE兼容性的java适当程序(32或64位)   java JSONArray。for循环中的add(JSONObject)正在替换for循环中的旧值,数组由循环中的最后一个值组成   java需要帮助创建一个返回数组的方法,该数组的元素是另一个数组的平方   使用SmbFile w/groovy XmlSluper()创建xml。解析()Java   检查大小后的java ArrayIndexOutOfBoundsException   乘法表中的第k个最小元素   java 401 on请求,其中指定了'permitAll()'   java如何附加ORC文件   java hibernate类模型   java IDEA没有看到由自定义注释处理器生成的方法   Servlet中未声明java SerialVersionId   java linkedlist到达列表末尾时   java如何正确对齐EditText光标?   java 6编译器1.6上的eclipse重写方法错误   java如何在基于Jersey的RESTful Web服务中读取post数据   java如何在活动中正确使用接口?   Java的JIT编译器的工作速度有多快?