Ayuda

¿Como puedo utilizar Tractis LTA REST v2?

Para poder utilizar Tractis LTA, primero deberás crear una API Key de Tractis LTA y, a continuación, integrar dicha API Key en tu aplicación o servicio web.

 

Autenticación

Tractis LTA REST v2 está protegida mediante autenticación BASIC AUTH usando el API_KEY como nombre de usuario y el API_SECRET como contraseña:

Ejemplo de cabecera:

Authorization: Basic dXNlcjpwYXNzd29yZA==

Ejemplo curl:

curl -H 'Content-Type: application/json' -H 'Accept: application/json' -u apikey:apisecret https://api.tractis.com/lta/v2/content/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx

 

URL de invocación

La URL de invocación del servicio es:

https://api.tractis.com/lta/v2

 

API Content Type

Tractis LTA REST v2 funciona sobre JSON tanto en el input como el output, se recomienda usar las cabeceras Content-Type y Accept a ‘application/json’ aunque no es estrictamente necesario (por defecto la API espera JSON y devuelve JSON).

Resumen de métodos sobre “content”

  • POST /content Add a new content
  • GET /content/{id} Find content by ID
  • DELETE /content/{id} Deletes the content
  • GET /content/findByProperties Finds contents by properties

 

Add a new content (store)

POST /content Add a new content

Request: Parámetros

  • “content”: Contenido a almacenar en base64Binary.
    • Requerido: Sí
    • Ejemplo: TWkgQ29udGVuaWRv
    • Tamaño máximo: 20MB
  • “properties”: key-value hash de propiedades asociadas al contenido.
    • Requerido: Sí
    • Ejemplo: {“my-id”: “1234″, “my-client-id”: “4321″}
    • Al menos debe informarse una propiedad.
  • “customRestampDays”: Numérico. Cada número de días que se requiere realizar un resellado (90 por defecto).
    • Requerido: No
    • Ejemplo: 180
    • Mayor que 0. Si el número de días es mayor a la fecha de expiración del certificado del último resellado, el resellado se producirá 30 días antes de su fecha de expiración automáticamente.

Request: Ejemplo

{"content": "TWkgQ29udGVuaWRv", "properties":{"my-id": "1234, "my-client-id": "4321"}, "customRestampDays": 180}

Response: Codes

  • 201: Created
  • 400: Bad Request
  • 406: Insufficent Funds
  • 500: Internal Error

Response: Datos

  • 201:
    • “id”: Identificador del contenido, string
  • 400
    • “error”: Descripción del error en el request
  • 406
    • “error”: insufficient_funds

Response: Ejemplo

{"id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"}

 

Find content by ID (recover)

GET /content/{id} Find content by ID

Request: Parámetros

  • “id”: Identificador del contenido
    • Requerido: Sí

Request: Ejemplo

GET /lta/v2/content/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response: Codes

  • 200: OK
  • 400: Bad Request
  • 404: No encontrado
  • 500: Internal Error

Response: Datos

  • 200:
    • “id”: Identificador del contenido
    • “content”: Contenido en base64Binary
    • “properties”: Hash de propiedades asociadas al contenido
    • “measures”: Array de medidas de protección aplicadas al contenido
      • “protectionContent”: Sello de tiempo aplicado
      • “protectionType”: Tipo de protección (siempre “application/timestamp-reply”)
      • “applicationDate”: Fecha en la que se realizó el sello de tiempo sobre el contenido
      • “expirationDate”: Fecha de caducidad de la medida de protección (fecha de caducidad del certificado con el que realizó el sello de tiempo)
  • 400
    • “error”: Descripción del error en el request

Response: Ejemplo


{
 "id":"xxxxxxxx-5a9e-4593-9189-73c62808c4ed",
 "content":"TWkgQ29udGVuaWRv",
 "properties":{"my-id": "1234", "my-client-id": "4321"},
 "measures":[
  {
   "protectionContent":"PD94bWwgdmVyc....../.../.....XR1cmU+",
   "protectionType":"application/timestamp-reply",
   "applicationDate":"2016-02-04T15:42:00.000Z",
   "expirationDate":"2020-07-20T22:59:00.000Z"
  }
 ]
}

 

Delete content by ID (remove)

DELETE /content/{id} Deletes the content

Request: Parámetros

  • “id”: Identificador del contenido
    • Requerido: Sí

Request: Ejemplo

DELETE /lta/v2/content/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Response: Codes

  • 200: Deleted
  • 400: Bad Request
  • 404: Contenido no encontrado
  • 500: Internal Error

Response: Datos

  • 200: Se retorna el contenido final antes del borrado con todas las medidas de protección aplicadas en el tiempo al contenido.
    • “id”: Identificador del contenido
    • “content”: Contenido en base64Binary
    • “properties”: Hash de propiedades asociadas al contenido
    • “measures”: Array de medidas de protección aplicadas al contenido
      • “protectionContent”: Sello de tiempo aplicado
      • “protectionType”: Tipo de protección (siempre “application/timestamp-reply”)
      • “applicationDate”: Fecha en la que se realizó el sello de tiempo sobre el contenido
      • “expirationDate”: Fecha de caducidad de la medida de protección (fecha de caducidad del certificado con el que realizó el sello de tiempo)
  • 400
    • “error”: Descripción del error en el request

Response: Ejemplo


{
 "id":"xxxxxxxx-5a9e-4593-9189-73c62808c4ed",
 "content":"TWkgQ29udGVuaWRv",
 "properties":{"my-id": "1234", "my-client-id": "4321"},
 "measures":[
  {
   "protectionContent":"PD94bWwgdmVyc....../.../.....XR1cmU+",
   "protectionType":"application/timestamp-reply",
   "applicationDate":"2016-02-04T15:42:00.000Z",
   "expirationDate":"2020-07-20T22:59:00.000Z"
  }
 ]
}

 

Finds contents by properties (search)

GET /content/findByProperties Finds contents by properties

Request: Parámetros

  • “key=value”: key-value get parameters, uno o varios
    • Requerido: Sí

Request: Ejemplo

GET /lta/v2/content/findByProperties?my-id=1234&my-client-id=4321

Response: Codes

  • 200: OK
  • 400: Bad Request
  • 500: Internal Error

Response: Datos

  • 200: Se retorna un array de contenidos según el criterio de búsqueda por propiedades.
    • “id”: Identificador del contenido
    • “content”: Contenido en base64Binary
    • “properties”: Hash de propiedades asociadas al contenido
    • “measures”: Array de medidas de protección aplicadas al contenido
      • “protectionContent”: Sello de tiempo aplicado
      • “protectionType”: Tipo de protección (siempre “application/timestamp-reply”)
      • “applicationDate”: Fecha en la que se realizó el sello de tiempo sobre el contenido
      • “expirationDate”: Fecha de caducidad de la medida de protección (fecha de caducidad del certificado con el que realizó el sello de tiempo)
  • 400
    • “error”: Descripción del error en el request

Response: Ejemplo

No se encuentra contenido, array vacía:

[]

Se encuentra contenido, array de contents:


[{
 "id":"c363a204-5a9e-4593-9189-73c62808c4ed",
 "content":"TWkgQ29udGVuaWRv",
 "properties":{"my-id": "1234", "my-client-id": "4321"},
 "measures":[
  {
   "protectionContent":"PD94bWwgdmVyc....../.../.....XR1cmU+",
   "protectionType":"application/timestamp-reply",
   "applicationDate":"2016-02-04T15:42:00.000Z",
   "expirationDate":"2020-07-20T22:59:00.000Z"
  }
 ]
}]