Saltar al contenido principal

Peticiones a la API

URL de API​

La URL del servicio API de Aplazame se encuentra disponible en https://api.aplazame.com.

Cabeceras HTTP​

GET /orders HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com
ParámetroTipoRequeridoDescripción
AcceptstringSíEspecifica la versión de la API de Aplazame y el tipo de dato esperado.
AuthorizationstringSíTipo y clave de acceso.

Respuesta​

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Aplazame-Media-Type: aplazame.v1

OAuth2 es un estandard abierto de autorizacion definido en la RFC 6749.

OAuth2 es más sencillo que OAuth1 y proporciona mayor nivel de seguridad.

Versionado​

Se utiliza la cabecera Accept tanto para indicar la versión de la API, el formato (y el modo de pruebas).

GET /orders HTTP/1.1
Accept: application/vnd.aplazame.v1+(json|xml)
Authorization: Bearer api_private_key
Host: api.aplazame.com

Aunque Aplazame soporta el versionado mediante URL (p.e. https://api.aplazame.com/v1/orders), se considera buena práctica usar la cabecera Accept en la petición para especificar el tipo y el formato esperado de la respuesta de la API.

Si no se indica la versión de la API, se aplicará más reciente. Esto no es aconsejable ya que una nueva versión podría dejar obsoleto alguna propiedad.

Tipos de formato soportados​

CabeceraVersionFormato esperadoValor
Accept1jsonapplication/vnd.aplazame.v1+json
Accept1xmlapplication/vnd.aplazame.v1+xml

Decimales​

tip

Es importante tener en cuenta que para las unidades monetarias, comisiones y descuentos se usan enteros, de modo que las cantidades que envían son céntimos. Por ejemplo, "12.50 €"‚ se envía como 1250.

$ if ((`bc <<< "12.50!=1250"`)); then echo "beep beeeeeeep!!!"; fi

Errores​

HTTP/1.1 400 BAD REQUEST
Content-Type: application/json; charset=utf-8
X-Aplazame-Media-Type: aplazame.v1
{
"error": {
"fields": {
"articles": [
"This field is required."
]
},
"message": "API validation error",
"type": "ApiValidationException"
}
}

Listado de códigos de error devueltos por la API.

CódigoErrorSignificado
400Bad RequestSi hay algún error en los datos enviados.
401UnauthorizedNo se ha enviado el token (public/private key) o el que se ha enviado no es válido.
403ForbiddenAún siendo válido el token, la operación puede ser rechazada por permisos.
404Not FoundNo se ha encontrado el objeto o recurso.
405Method Not AllowedEl método no está disponible para la url indicada (GET/POST/...).
406Not AcceptableLa cabecera Accept no es válida ver cabeceras.
408Request timeoutHa expirado el tiempo máximo de espera para la petición.
409ConflictIndica que se ha producido un conflicto con la petición, su significado depende del contexto.
415Unsupported Media TypeNo hay soporte para el tipo indicado por la cabecera 'Content-Type'.
429Too Many RequestsSe están recibiendo demasiadas peticiones.
500Internal Server ErrorError en el servidor de la API, esto puede ser un fallo en la implementación, un problema puntual de la red, etc.
503Service UnavailableFuera de servicio por mantenimiento.

Paginación​

GET /orders?page=2 HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com

Respuesta​

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
X-Aplazame-Media-Type: aplazame.v1
{
"cursor": {
"after": 3,
"before": 1
},
"paging": {
"count": 314,
"next": "https://api.aplazame.com/orders?page=3",
"previous": "https://api.aplazame.com/orders?page=1"
},
"results": []
}
ParámetroTipoDescripción
cursorobjectPuntero de paginación.
pagingobjectEstado de paginación.
resultscollectionListado de tiendas.

cursor​

"cursor": {
"after": 3,
"before": 1
}
ParámetroTipoDescripción
afterintegerÍndice de la página anterior.
beforeintegerÍndice de la página siguente.

paginación​

"paging": {
"count": 314,
"next": "https://api.aplazame.com/orders?page=3",
"previous": "https://api.aplazame.com/orders?page=1"
}
ParámetroTipoDescripción
countintegerNúmero de elementos devueltos.
nextURLURL de la API a la siguente página de resultados.
previousURLURL de la API a la página anterior de resultados.

Filtros​

Los filtros en las consultas de listados se indican mediante parámetros de la URL.

El formato de cada parametro está compuesto por la entidad, el tipo de búsqueda y el valor a buscar.

GET /orders?propiedad-busqueda=valor

En el siguente ejemplo, la petición devolverá todos los pedidos cuyo id comienze por e791f. Si se omite el tipo de concordancia, se usará exact.

GET /orders?id-startswith=e791f HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com

Si se especifican varios filtros, el resultado devolverá la combinación aditiva de ellos.

GET /orders?id-startswith=e791f&id-endswith=4ff4g HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com

Búsqueda de texto​

TérminoUsoDescripción
exactname-exact=AplaZameCoincidencia exacta.
iexactname-iexact=aplazameCoincidencia exacta no sensible a mayúsculas/minúsculas.
regexname-regex=^[A-Z].*$Expresión regular sensible a mayúsculas/minúsculas.
iregexname-iregex=^[a-z].*$Expresión regular no sensible a mayúsculas/minúsculas.
containsname-contains=plaZaContiene la cadena especificada no sensible a mayúsculas/minúsculas.
icontainsname-icontains=plazaContiene la cadena especificada.
startswithname-startswith=AplaComienza por la cadena especificada.
istartswithname-istartswith=aplaComienza por la cadena especificada no sensible a mayúsculas/minúsculas.
endswithname-endswith=ZameTermina por la cadena especificada.
iendswithname-iendswith=zameTermina por la cadena especificada no sensible a mayúsculas/minúsculas.
inname-in=AplaZame,AplazarCoincide con alguna de las opciones separadas por comas.
searchname-search=ApCadena de texto a buscar.

Por fecha​

GET /orders?confirmed-week_day=monday HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com
TérminoUsoDescripción
yearcreated-year=2015Fechas cuyo año coincida con el indicado.
monthcreated-month=10Fechas cuyo mes coincida con el indicado.
week_daycreated-week_day=mondayDía de la semana, las opciones son: monday, tuesday, wednesday, thursday, friday, saturday, sunday.
daycreated-day=2Fechas cuyo día del mes coincida con el indicado.
hourcreated-hour=14Fechas cuya hora coincida con la indicada.

Nulo​

TérminoUsoDescripción
isnullconfirmed-isnull=yesFiltrar por campos nulos, si O no.

Rangos de valores​

GET /orders?confirmed-gte=2015-10-02T18:15:45.101838Z HTTP/1.1
Accept: application/vnd.aplazame.v1+json
Authorization: Bearer api_private_key
Host: api.aplazame.com
TérminoUsoDescripción
exacttotal_amount-exact=10000Valor exacto.
gttotal_amount-gt=8000Mayor qué.
gtetotal_amount-gte=10000Mayor o igual que.
lttotal_amount-lt=12000Menor que.
ltetotal_amount-lte=10000Menor o igual que.