API

El API es una pieza clave para integrar Startrack con otros sistemas o aplicaciones. El API responde a solicitudes de información de otros sistemas y puede recibir ciertos datos de otros sistemas.

Para recibir datos de Startrack en tiempo real, sin tener que consultar continuamente, por favor lea la sección Webhooks.

En este documento describimos los métodos (M) disponibles y tipos de objetos (O) que componen el API. Asegúrese de leerlos con atención ya que se deben seguir las instrucciones de forma precisa para obtener los resultados esperados. En la sección de Preguntas Frecuentes, respondemos de forma resumida las preguntas que podrían surgir durante la integración del API.

URL para acceder al API

El API se consume únicamente por https en la dirección https://<hostname>/api

En lugar de <hostname> se debe poner el "dominio" donde usted accede al sistema normalmente.

Usuario para acceder al API (Autenticación)

El API requiere login por medio de basic http authentication.

EL API key puede encontrarlo en el administrador de usuarios en la pestaña "Integraciones (API)".

Por ejemplo para este user, el API Key es 22_5995decd5a025

Límite de Peticiones

Para garantizar la estabilidad y calidad del servicio web, el API utiliza un límite de tasa de transmisiones:

Rate limit: máximo de 50 peticiones por IP en 5 minutos.

Si se supera el límite, la respuesta del servidor será:

HTTP/1.0 529 Too Many Requests

Algoritmo recomendado

Este límite debe ser tomado en cuenta al implementar las aplicaciones que consumen el API. Si la aplicación ignora la respuesta del servidor y continúa intentando enviar peticiones, ninguna petición se tomará en cuenta hasta que haya pasado el tiempo necesario.

Este pseudo-código muestra una forma simple de identificar y manejar el límite.

response = request.get( url )
if response.status equals 529:
    alert( 'Rate limited. Waiting to Retry...' )
    wait( FIVE_MINUTES )
    retry( url )

Recomendaciones

  1. Optimice su código para eliminar llamadas innecesarias al API. Por ejemplo, se está consultando información que no se utiliza en la aplicación? Se está sobreescribiendo objetos sin hacer cambios a ningún parámetro?
  2. Mantenga una copia local de la información que se utiliza frecuentemente. Puede utilizar una cache en RAM de los objetos que serán usados más de una vez. También se puede utilizar una base de datos o archivo de texto para guardar información que no se modifica frecuentemente.