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 (empiezan con "M:") disponibles y tipos de objetos (empiezan con "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.
- En el campo de
user
se debe introducir el API key del usuario. - En el campo de
password
se introduce el mismo password del usuario que se usa para ingresar al sistema. Se recomienda usar una contraseña larga, usando caracteres y números para más seguridad.
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 240 peticiones por IP en 2 minutos.
Si se supera el límite, la respuesta del servidor será:
HTTP/1.0 529 Too Many Requests
Algunas rutas específicas utilizan un límite más restrictivo debido a que requieren de más recursos en el servidor. La documentación de cada ruta menciona si el límite es diferente al general.
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
- 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?
- 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.