Salta el contingut

API catàleg

Documentació API catàleg

Taules

El catàleg és construiex a partir de diverses taules. Les categories del catàleg es defineixen a la taula giscube_category, i els continguts amb taules de dades (p.e. layerserver_geojsonlayer, qgisserver_project, etc) que es relacionen amb les categories mitjançant una Foreign Key.

URL API

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

L’Endpoint retorna una llista amb totes les categories. Cada categoria té un id, un name, un color (pot ser null) i un parent (pot ser null). Si la categoria té parent vol dir que és subcategoria d’aquest. Per exemple, en la taula següent, ‘Serveis i equipaments’ és la categoria mare i ‘Administració pública’ és una subcategoria de l’anterior. Al catàleg ‘Administració pública’ penja de ‘Serveis i equipaments’.

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

Podem relacionar noves categories a subcategories, creant “subsubcategories”. Això permet crear un arbre amb fills “infinits”.

Si alguna categoria té vinculades dades d’una altra taula (p.e. layerserver_geojsonlayer) es veuran reflectides amb la propietat content. content és un array que conté les dades de cada taula vinculada. En el cas següent hi ha una categoria “Serveis i equipaments”, una altra categoria “Administració Pública” que té l’anterior com a categoria mare. Per altra banda, el registre “Administració autonòmica” de la taula layerserver_geojsonlayer està vinculat a la categoria “Administració Pública” i hi apareix a la propietat 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ó

Per accedir a aquesta API cal autentificació. O sigui, s’ha d’enviar un token al servidor.

Aquest es pot enviar de dues maneres:

  • Paràmetre access_token en una petició GET
Paràmetre access_token
Exemple https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/category/catalog/?access_token=JIFbeOLxkW87wvu3a5at9164IGv7w7
  • Capçalera HTTP
Paràmetre Authorization
Exemple Authorization=Bearer JIFbeOLxkW87wvu3a5at9164IGv7w7

L’API del catàleg és pública però hi ha registres de les taules vinculades a les categories que no ho són. En el cas de no estar autenticats obtindrem totes les categories i els valors de les taules públiques apareixen a la propietat content com s’ha vist abans. Si una taula és privada la categoria apareixerà igualment però no el seu contingut. Si estem autenticats obtindrem tots els resultats.

Per exemple, si el registre “Administració autonòmica” és privat obtindrem el següent.

No autenticats:

{
    "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 l’API

L’API de catàleg és realment una API de les categories des de les quals es construiex el catàleg. Podem obtenir totes les categories, sense el contingut, des de l’Endpoint geoportal/category/.

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

També podem obtenir categories amb el contingut fent una cerca amb l’id de la categoria a través d’un altre Endpoint.

Cerca per id
Endpoint geoportal/catalog/
Paràmetre category_id
Descripció Cerca per coincidencia del camp id
Exemple https://xxxxxxx.xxxxxxx.xxx/apps/giscube-admin/geoportal/catalog/?category_id=40