Skip to content

Latest commit

 

History

History
230 lines (181 loc) · 9.78 KB

README.es.md

File metadata and controls

230 lines (181 loc) · 9.78 KB

Onfleet Python Wrapper

Build License Latest version Top language Downloads

Consulta este documento en otro idioma:
English
正體中文

Los invitamos a visitar nuestra publicación sobre el proyecto de librerías para la API para conocer más sobre nuestras iniciativas.
En caso de preguntas, pueden contactarnos a través de un issue aquí o escribirnos a support@onfleet.com.

Tabla de contenidos

Sinopsis

La librería en Python de Onfleet nos permite un acceso fácil y cómodo a la API de Onfleet.

Instalación

pip install pyonfleet

Uso

Antes de usar la librería, es indispensable obtener una llave para la API a través de alguno de los administradores de la organización a la que pertenecemos.

La creación e integración de llaves se realiza a través del panel principal de Onfleet.

Para autenticarse en la API es necesario también crear un archivo .auth.json dentro del directorio de trabajo.
En este archivo es donde se almacenarán las credenciales de la API.

El formato del archivo .auth.json es el siguiente:

{
    "API_KEY": "<your_api_key>"
}

También tenemos la opción de no crear dicho archivo y, en cambio, proporcionar la llave cuando creamos una instancia de Onfleet:

from onfleet import Onfleet

# Option 1 - Recommended
onfleet_api = Onfleet()  # Using the .auth.json file

# Option 2
onfleet_api = Onfleet(api_key="<your_api_key>")  # Without the .auth.json file

Una vez que el objeto Onfleet object es creado, obtendremos acceso a todos los recursos de la API referenciados en la documentación de la API de Onfleet.

Pruebas unitarias usando Docker

docker-compose up --build

Límites

La API impone un límite de 20 peticiones por segundo entre todas las peticiones de todas las llaves de la organización. Más detalles aquí.

Respuestas

Las respuestas de esta librería son instancias de Response de la librería requests.

Operaciones CRUD soportadas

Estas son las operaciones disponibles para cada endpoint:

Entity GET POST PUT DELETE
Admins/Administrators get() create(body={})
matchMetadata(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={})
matchMetadata(body={})
x x
Hubs get() create(body={}) update(id, body={}) x
Organization get()
get(id)
x insertTask(id, body={}) x
Recipients get(id)
get(name='')
get(phone='')
create(body={})
matchMetadata(body={})
update(id, body={}) x
Tasks get(queryParams={})
get(id)
get(shortId=id)
create(body={})
clone(id)
forceComplete(id)
batch(body={})
autoAssign(body={})
matchMetadata(body={})
update(id, body={}) deleteOne(id)
Teams get()
get(id)
getWorkerEta(id, queryParams={})
getTasks(id, queryParams={})
create(body={})
autoDispatch(id, body={})
update(id, body={})
insertTask(id, body={})
deleteOne(id)
Webhooks get() create(body={}) x deleteOne(id)
Workers get()
get(id)
get(queryParams={})
getByLocation(queryParams={})
getSchedule(id)
getTasks(id, queryParams={})
create(body={})
setSchedule(id, body={})
matchMetadata(body={})
getDeliveryManifest(workerId, hubId, googleApiKey, queryParams={})
update(id, body={})
insertTask(id, body={})
deleteOne(id)

Peticiones GET

Para obtener todos los elementos disponibles en un recurso:

get()
Ejemplos de get()
onfleet_api.workers.get()
onfleet_api.workers.get(queryParams="")

Opcionalmente, podemos utilizar queryParams en los recursos que lo soportan.
En la documentación de la API se describe qué recursos lo permiten.

# Option 1
onfleet_api.workers.get(queryParams={"phones": "<phone_number>"})

# Option 2
onfleet_api.workers.get(queryParams="phones=<phone_number>")

Para obtener un elemento dentro de un recurso, éste se puede localizar mediante un parámetro específico:

get(param="<value>")
Ejemplos de get(parametro)
onfleet_api.workers.get(id="<24_digit_ID>")
onfleet_api.workers.get(id="<24_digit_ID>", queryParams={"analytics": "true"})

onfleet_api.tasks.get(shortId="<shortId>")

onfleet_api.recipients.get(phone="<phone_number>")
onfleet_api.recipients.get(name="<name>")

onfleet_api.containers.get(workers="<worker_ID>")
onfleet_api.containers.get(teams="<team_ID>")
onfleet_api.containers.get(organizations="<organization_ID>")

Para obtener un driver según su ubicación, podemos utilizar la función getByLocation:

getByLocation(queryParams="<location_params>")
Ejemplos de getByLocation
location_params = {
    "longitude": "-122.4",
    "latitude": "37.7601983",
    "radius": "6000",
}

onfleet_api.workers.getByLocation(queryParams=location_params)

Peticiones POST

Para crear un elemento de un recurso:

create(body="<data>")
Ejemplos de create()
data = {
    "name": "John Driver",
    "phone": "+16173428853",
    "teams": ["<team_ID>", "<team_ID> (optional)", "..."],
    "vehicle": {
        "type": "CAR",
        "description": "Tesla Model S",
        "licensePlate": "FKNS9A",
        "color": "purple",
    },
}

onfleet_api.workers.create(body=data)

Otras peticiones POST incluyen clone, forceComplete, batchCreate, autoAssign en el recurso Tasks; setSchedule en el recurso Workers; autoDispatch en el recurso Teams; y matchMetadata en todos los recursos que lo soportan. Por ejemplo:

onfleet_api.tasks.clone(id="<24_digit_ID>")
onfleet_api.tasks.forceComplete(id="<24_digit_ID>", body="<data>")
onfleet_api.tasks.batchCreate(body="<data>")
onfleet_api.tasks.autoAssign(body="<data>")

onfleet_api.workers.setSchedule(id="<24_digit_ID>", body="<data>")
onfleet.api.workers.getDeliveryManifest(workerId="<workerId>", hubId="<hubId>", googleApiKey="<googleApiKey>", queryParams={"<startDate>", "<endDate>"})

onfleet_api.teams.autoDispatch(id="<24_digit_ID>", body="<data>")

onfleet_api.<entity_name_pluralized>.matchMetadata(body="<data>")

Para más información, podemos consultar la documentación sobre clone, forceComplete, batchCreate, autoAssign, setSchedule. matchMetadata, getDeliveryManifest y autoDispatch.

Peticiones PUT

Para modificar un elemento de un recurso:

update(id="<24_digit_ID>", body="<data>")
Ejemplos de update()
new_data = {
    "name": "Jack Driver",
}

onfleet_api.workers.update(id="<24_digit_ID>", body=new_data)
Ejemplos de insertTask()
onfleet_api.workers.insertTask(id="<24_digit_ID>", body="<data>")

Peticiones DELETE

Para eliminar un elemento de un recurso:

deleteOne(id="<24_digit_ID>")
Ejemplos de deleteOne()
onfleet_api.workers.deleteOne(id="<24_digit_ID>")

Ir al inicio.