Salta el contingut

API catálogo

Documentación de la API de catálogo

Tablas

El catálogo se construye a partir de varias tablas. Las categorías del catálogo se definen en la tabla giscube_category, y los contenidos con tablas de datos (por ejemplo, layerserver_geojsonlayer, qgisserver_project, etc.) que se relacionan con las categorías mediante una Clave Foránea.

URL de la API

Endpoint geoportal/category/catalog/
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/category/catalog/

El Endpoint devuelve una lista con todas las categorías. Cada categoría tiene un id, un name, un color (puede ser nulo) y un parent (puede ser nulo). Si la categoría tiene parent, significa que es una subcategoría de esta. Por ejemplo, en la siguiente tabla, ‘Serveis i equipaments’ es la categoría madre y ‘Administració pública’ es una subcategoría de la anterior. En el catálogo, ‘Administració pública’ está dentro de ‘Serveis i equipaments’.

id name color parent
39 Serveis i equipaments #1D6996 null
40 Administració pública null 39

Podemos relacionar nuevas categorías con subcategorías, creando “subsubcategorías”. Esto permite crear un árbol con hijos “infinitos”.

Si alguna categoría tiene datos vinculados de otra tabla (por ejemplo, layerserver_geojsonlayer), estos se reflejarán con la propiedad content. content es un array que contiene los datos de cada tabla vinculada. En el siguiente ejemplo, hay una categoría “Serveis i equipaments”, otra categoría “Administració Pública” que tiene la anterior como categoría madre. Por otro lado, el registro “Administració autonòmica” de la tabla layerserver_geojsonlayer está vinculado a la categoría “Administració Pública” y aparece en la propiedad content.

{
    "id": 39,
    "name": "Serveis i equipaments",
    "color": "#1D6996",
    "parent": null
},
{
    "id": 40,
    "name": "Administració Pública",
    "color": null,
    "parent": 39,
    "content": [
        {
            "group": true,
            "title": "Administració Autonòmica",
            "legend": "",
            "catalog": ["Serveis i equipaments","Administració Pública"],
            "options": {},
            "private": false,
            "children": [
                {
                    "url": "https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/layerserver/geojsonlayers/administracio-autonomica-publica",
                    "type": "GeoJSON",
                    "group": false,
                    "title": "Capa GeoJSON",
                    "projection": "4326"
                }
            ],
            "keywords": "Administració Autonòmica, generalitat, jutjats, treball",
            "metadata": {...},
            "giscube_id": "20.174",
            "category_id": 40,
            "description": "",
            "has_children": true
        },
        {...}
    ]
},
{...}

Autenticación

Para acceder a esta API se requiere autenticación. Es decir, se debe enviar un token al servidor..

Éste se puede enviar de dos maneras:

  • Parámetro access_token en una petición GET
Parámetro access_token
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/category/catalog/?access_token=JIFbeOLxkW87wvu3a5at9164IGv7w7
  • Cabecera HTTP
Parámetro Authorization
Ejemplo Authorization=Bearer JIFbeOLxkW87wvu3a5at9164IGv7w7

La API del catàleg es pública pero hay registros de las tablas vinculadas a las categorías que no lo son. En el caso de no estar autenticados obtendremos todas las categorías y los valores de las tablas públicas aparecerán en la propiedad content como se ha visto antes. Si una tabla es privada, la categoría aparecerá igualmente, pero no su contenido. Si estamos autenticados, obtendremos todos los resultados.

Por ejemplo, si el registro “Administració autonòmica” es privado obtendremos lo siguiente.

No autenticados:

{
    "id": 39,
    "name": "Serveis i equipaments",
    "color": "#1D6996",
    "parent": null
},
{
    "id": 40,
    "name": "Administració Pública",
    "color": null,
    "parent": 39
},
{...}

Autenticats:

{
    "id": 39,
    "name": "Serveis i equipaments",
    "color": "#1D6996",
    "parent": null
},
{
    "id": 40,
    "name": "Administració Pública",
    "color": null,
    "parent": 39
    "content": [
        {
            "group": true,
            "title": "Administració Autonòmica",
            "legend": "",
            "catalog": ["Serveis i equipaments","Administració Pública"],
            "options": {},
            "private": false,
            "children": [{...}],
            "keywords": "Administració Autonòmica, generalitat, jutjats, treball",
            "metadata": {...},
            "giscube_id": "20.174",
            "category_id": 40,
            "description": "",
            "has_children": true
        },
        {...}
    ]
},
{...}

Paràmetres de la API

La API del catálogo es realmente una API de las categorías desde las cuales se construye el catálogo. Podemos obtener todas las categorías, sin el contenido, desde el endpoint geoportal/category/.

Endpoint geoportal/category/
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/category/

También podemos obtener categorías con el contenido haciendo una búsqueda con el id de la categoría a través de otro endpoint.

Búsqueda por id
Endpoint geoportal/catalog/
Parámetro category_id
Descripción Búsqueda por coincidencia del campo id
Ejemplo https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/catalog/?category_id=40