5. API

Este API te permite registrar datos en la cadena de bloques, consultar estos datos y obtener los certificados correspondientes.

5.1. Autenticación

Para utilizar este API lo primero que debes hacer es enviar una petición POST al endpoint /login con tu nombre de usuario y tu contraseña. La respuesta contendrá un token de acceso que deberás incluir en la cabecera Authorization de todas las peticiones posteriores. Este token tiene un tiempo de caducidad de 2 horas.

Petición de ejemplo:

POST /login HTTP/1.1
Content-Type: application/json

{
    "email": "myusername",
    "password": "mypassword"
}

Respuesta de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmV..."
}

5.2. Endpoints

5.2.1. POST /new-smart-check-merkle

Crea un espacio en el cual se van a registrar los elementos a certificar.

Para saber más haz click Aquí

Petición de ejemplo:

POST /new-smart-check-merkle" HTTP/1.1
Authorization: Bearer myaccesstoken
Content-Type: application/json

{
    "description": "Votaciones Comunidad de vecinos"
}

Respuesta de ejemplo:

HTTP/1.1 201 Created
Content-Type: application/json

{
    "date_creation": "2023-01-12 12:42:55 UTC",
    "description": "Votaciones Comunidad de vecinos",
    "errors": [],
    "merkle_root_ids": [],
    "merkle_root_list": [],
    "oid": "63c0004fb48e545d74c2851d",
    "owner": "62de6c3fc962a7dc80c644b5",
    "state": "CREATING"
}

Campos:

Campo Tipo Descripción
description String Descripción del proyecto.
errors Array Lista de errores.
date_creation String Fecha de creación del proyecto.
merkle_root_ids Array Listado de identificadores de Merkle Root.
merkle_root_list Array Listado de Merkle Root.
oid String Código identificador del proyecto.
owner String Código identificador del propietario o creador del proyecto.
state String Estado actual del proyecto.

5.2.2. POST /create-tree-and-register-merkle-root

Crea un Árbol Merkle a partir de una lista de huellas Hash, una vez calculado el Merkle Root lo registrará en la cadena de bloques.

Petición de ejemplo:

POST /smart-check/create-tree-and-register-merkle-root HTTP/1.1
Authorization: Bearer myaccesstoken

{
    "item_hashes_and_metadata": [

        {
            "item_hash": "d0ada7e1d0fb7d08cde6e34fd4fadd14373ccae...",
            "metadata": [

                {
                    "key": "country",
                    "value": "Spain"
                }

            ]
        }

    ],
    "smart_check_merkle_id": "63c0004fb48e545d74c2851d"
}

Campos:

Campo Tipo Descripción
item_hashes_and_metadata Array Conjunto de elementos que se va a certificar.
item_hash string Huella hash del dato o documento que se quiere registrar.
metadata (Opcioanal) Array Conjunto de metadatos que acompañan a la huella Hash.
key String Clave que identifica al metadato.
value String Valor del metadato.

Respuesta de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/json


{
    "merkle_root": "348255a43aa858444d3630a6d5ead0af...",
    "merkle_root_id": "63c0004fb48e545d74c2851d"
}

Campos:

Campo Tipo Descripción
merkle_root String Merkle Root registrado en la cadena de bloques.
merkle_root_id String Identificador del Merkle Root.

5.2.3. POST /print-reports

Devuelve un archivo zip que contiene los certificados.

Una vez que se recibe la respuesta, el archivo zip se puede descomprimir para acceder a los certificados. Ten en cuenta que el archivo zip puede contener varios certificados.

Petición de ejemplo:

POST /smart-check/print-reports HTTP/1.1
Authorization: Bearer myaccesstoken

{
    "merkle_root_id": "63c0004fb48e545d74c2851d"
}

Campos:

Campo Tipo Descripción
merkle_root String Identificador del Merkle Root.

Respuesta de ejemplo:

HTTP/1.1 200 OK
Content-Type: application/zip