Esta API está diseñada para interactuar con el sistema desde el lado de los módulos de integración, el lado del servidor de la pagina web, una tienda online o desde una aplicación móvil. Para interactuar con el sistema desde Javascript, use el Daemon Collector.
Esquema
Cuando interactua con la API, debe usar la versión v5. Las versiones anteriores de la API se conservan por compatibilidad y no se recomienda su uso. Puede leer sobre las versiones y sus diferencias en el artículo separado . Las solicitudes deben enviarse a:
https://{your-subdomain}.simla.com/api/{version}/
Todas las solicitudes son aceptadas solo por https
codificado en UTF-8
. La respuesta está formada en JSON
- formato.
Los datos del tipo "Fecha" se especifican en el formato Y-m-d
(p. Ej. 2014-03-21
), los datos del tipo "Fecha / Hora", en el formato Y-m-d H:i:s
(p. Ej. 2014-03-21
).
Autorización
La autorización se realiza mediante una clave de API, que se pasa en el GET|POST
- parámetro apiKey
:
https://demo.simla.com/api/v5/orders?apiKey=X2EDxEta9U3lcsSV0dwdF38UvtSCxIuGh
Además, la clave de API se puede pasar a través del encabezado X-API-KEY: X2EDxEta9U3lcsSV0dwdF38UvtSCxIuGh
En la sección administrativa del sistema, encontrará la sección sobre administración de claves API . Si falta la clave de API o si es incorrecta, la API informa de un error.
Si la clave API da acceso a los datos de varias tiendas, en algunos métodos API se requiere además especificar el código simbólico de la tienda en el GET|POST
- parámetro site
. En la referencia, puede ver qué métodos requieren especificar la tienda.
GET solicitudes
Cuando se hace referencia a métodos de API de tipo GET
, los parámetros deben enviarse como parámetros GET.
Un ejemplo de datos transmitidos:
https://demo.retailcrm.es/api/v5/orders?filter[numbers][]=1235C&filter[customFields][nps][min]=5&apiKey=X2EDxEta9U3lcsSV0dwdF38UvtSCxIuGh
Solicitudes POST
Cuando se hace referencia a métodos de API del tipo POST
, los parámetros deben enviarse en el formato application/x-www-form-urlencoded
. En este caso, si se pasa una estructura anidada en cualquiera de los parámetros (por ejemplo, en el método /api/v*/orders/create
, los datos del pedido en el parámetro order
, los valores de dichos parámetros deben pasarse como una cadena JSON.
Un ejemplo de datos transmitidos:
site=simple-site&order=%7B%22externalId%22%3A%22a123%22%2C%22firstName%22%3A%22Tom%22%7D
Frecuencia de llamadas a la API
Al acceder a la API, se le permite abordar no más de 10 solicitudes por segundo desde una IP. Los métodos de telefonía /api/telephony/*
no pueden acceder a más de 40 solicitudes por segundo desde una IP. En el caso de una carga mayor, la API responderá con:
HTTP/1.1 503 Service Temporarily Unavailable
Respuesta de paginación / paginación
La paginación está disponible en solicitudes con una respuesta potencialmente grande que es gruesa.
Además de la respuesta en sí, estas solicitudes contienen metainformación sobre la paginación:
HTTP/1.1 200 OK
{
"success": true,
"pagination": {
"limit" =>20,
"totalCount" =>1583,
"currentPage" =>1,
"totalPageCount" =>80
},
// data
}
La metainformación de paginación incluye:
limit
: la cantidad de elementos en la respuesta actual
totalCount
: número total de elementos
currentPage
: página actual
totalPageCount
: número total de páginas de respuesta
Si la respuesta consta de más de una página, el parámetro GET page
está disponible en la solicitud (el valor predeterminado es 1).