Información general de las APIs CONTPAQi®
APIs bajo arquitectura REST
Nuestras
APIs son
REST, es decir, esta arquitectura nos permite tener acceso a los recursos y datos de forma rápida, y desde cualquier lenguaje de programación. El formato de los datos que recibimos y con el que respondemos es
JSON.
Las
APIs están agrupadas en productos, es necesaria una suscripción por cada producto, lo que te permite probar e integrar la
API.
Autenticación e identificación
Todas nuestras APIs requieren en el encabezado / header de la solicitud dos parámetros:
-
License-Code: Es el código de licencia relacionado a tu cuenta
CONTPAQi® Nube, el cual deberá tener asignado el servicio o producto vigente.
-
Subscription-Key: Es la clave de suscripción que proporciona acceso a la
API y se encuentra en tu perfil.
Por cada suscripción tendrás un par de llaves: una primaria y una secundaria, y podrás usar las dos indistintamente.
|
|
Importante:
Usa la llave primaria para tu ambiente de producción y la secundaria para tus ambientes de desarrollo, que sea esta llave secundaria la que compartas con otros desarrolladores. Puedes renovar estas llaves en cualquier momento dejando obsoletas las anteriores.
|
Respuesta de las APIs
La finalidad de estandarizar la respuesta de las APIs de CONTPAQi® Nube, se basa en la necesidad de brindar toda la información necesaria para una rápida implementación y entendimiento. Todas nuestras APIs regresan un código de respuesta "HTTP", donde las respuestas se agrupan en cinco clases: "respuestas informativas (100’s)", "respuestas satisfactorias (200’s)", "redirecciones (300’s)", "errores de los clientes (400’s)" y "errores de los servidores (500’s)".
En la estructura anterior se observan varias propiedades que forman parte del estándar:
status. Contiene el código "HTTP" original del error.
type. Es una "URL" absoluta o relativa, por defecto “about:blank”, que permite identificar cuál es el problema exacto y su posible solución. Esa "URL" es una descripción legible del problema.
title. Puede contener un texto breve que describa el problema, sobre todo destinados a aquellos consumidores que no sean capaces de interpretar correctamente el significado del campo type.
detail. Muestra información adicional sobre el problema, más enfocada en la forma de solucionar el error.
instance. Es una "URL", absoluta o relativa, que apunta a la instancia protagonista del problema.
Versionamiento
Las APIs pueden evolucionar, cuando esto suceda, se publicarán con un número de versión en la url de la forma https://contpaqinube.com/isv/v2/customers; donde la parte v2 indica el número de versión de la API.
Las versiones que van quedando obsoletas seguirán estando publicadas con un período de convivencia para dar oportunidad a que puedas realizar los ajustes en tus desarrollos.
Dependiendo de la obligatoriedad del cambio, podría variar el tiempo de convivencia.
Límite de Peticiones
Cada suscripción tiene permitido un número determinado de llamadas a las APIs en un espacio de tiempo o periodo. Si este límite es sobrepasado, el servidor retorna un código 429 ("Too Many Requests"). Si la aplicación cliente llega al límite, debe esperar que se termine el período para realizar llamadas al API de nuevo.
|
|
Toma nota:
Evita la sobre carga y has un buen uso de las APIs, realiza un número considerable de peticiones por endpoint.
|
Seguridad en las APIs
La seguridad de las APIs es muy importante, por lo que podemos considerar que nos basamos a los estándares y recomendaciones de la industria.
La información de las credenciales de los usuarios, así como cualquier entidad o artefacto que proporcione identificación, está almacenada de forma segura y los desarrolladores no tienen acceso a ellas.
Para cierta información, se solicitará aplicar algoritmos de cifrado para mejorar la seguridad de esta.
Como desarrollador será tu obligación contribuir a cuidar los datos de los usuarios de ataques de terceros, por lo que te recomendamos ampliamente que consultes los
Principios de Diseño en cuanto a seguridad se refiere.