Skip to main content

API for CSV converted by udata-hydra

Project description

Api-tabular

This connects to udata-hydra and serves the converted CSVs as an API.

Run locally

Start udata-hydra via docker compose.

Launch this project:

docker compose up

You can now access the raw postgrest API on http://localhost:8080.

Now you can launch the proxy (ie the app):

poetry install
poetry run adev runserver -p8005 api_tabular/app.py        # Api related to apified CSV files by udata-hydra
poetry run adev runserver -p8005 api_tabular/metrics.py    # Api related to udata's metrics

And query postgrest via the proxy using a resource_id, cf below. Test resource_id is 27d469ff-9908-4b7e-a2e0-9439bb38a395

API

Meta informations on resource

curl http://localhost:8005/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/
{
  "created_at": "2023-02-11T11:44:03.875615+00:00",
  "url": "https://data.toulouse-metropole.fr//explore/dataset/boulodromes/download?format=csv&timezone=Europe/Berlin&use_labels_for_header=false",
  "links": [
    {
      "href": "/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/profile/",
      "type": "GET",
      "rel": "profile"
    },
    {
      "href": "/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/data/",
      "type": "GET",
      "rel": "data"
    }
  ]
}

Profile (csv-detective output) for a resource

curl http://localhost:8005/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/profile/
{
  "profile": {
    "header": [
        "geo_point_2d",
        "geo_shape",
        "ins_nom",
        "ins_complexe_nom_cplmt",
        "ins_codepostal",
        "secteur",
        "..."
    ]
  },
  "...": "..."
}

Data for a resource (ie resource API)

curl http://localhost:8005/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/data/
{
  "data": [
    {
      "__id": 1,
      "geo_point_2d": "43.58061543292057,1.401751073689455",
      "geo_shape": {
        "coordinates": [
          [
              1.401751073689455,
              43.58061543292057
            ]
          ],
          "type": "MultiPoint"
        },
      "ins_nom": "BOULODROME LOU BOSC",
      "ins_complexe_nom_cplmt": "COMPLEXE SPORTIF DU MIRAIL",
      "ins_codepostal": 31100,
      "secteur": "Toulouse Ouest",
      "quartier": 6.3,
      "acces_libre": null,
      "ins_nb_equ": 1,
      "ins_detail_equ": "",
      "ins_complexe_nom": "",
      "ins_adresse": "",
      "ins_commune": "",
      "acces_public_horaires": null,
      "acces_club_scol": null,
      "ins_nom_cplmt": "",
      "ins_id_install": ""
    }
  ],
  "links": {
    "next": "/api/resources/60963939-6ada-46bc-9a29-b288b16d969b/data/?page=2&page_size=1",
    "prev": null,
    "profile": "/api/resources/60963939-6ada-46bc-9a29-b288b16d969b/profile/"
  },
  "meta": {"page": 1, "page_size": 1, "total": 2}
}

This endpoint can be queried with the following operators as query string:

# sort by column
column_name__sort=asc
column_name__sort=desc

# contains
column_name__contains=word

# exacts
column_name__exact=word

# less
column_name__less=12

# greater
column_name__greater=12

Pagination is made throught queries with page and page_size:

curl http://localhost:8005/api/resources/27d469ff-9908-4b7e-a2e0-9439bb38a395/data/?page=2&page_size=30

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

udata_hydra_csvapi-0.1.0.dev222.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

udata_hydra_csvapi-0.1.0.dev222-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file udata_hydra_csvapi-0.1.0.dev222.tar.gz.

File metadata

  • Download URL: udata_hydra_csvapi-0.1.0.dev222.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.2.2 CPython/3.9.15 Linux/5.15.0-1039-aws

File hashes

Hashes for udata_hydra_csvapi-0.1.0.dev222.tar.gz
Algorithm Hash digest
SHA256 69c720c1d40456a5d5939a5f6ce444dcec384fcafd4dd1d9b5265a4f49f2c7d3
MD5 bf9f41c209f0d2cc312715b3a0bda36c
BLAKE2b-256 b85b20afd8521f854b24822cc291cdb644c1af9c6d59f256a57527fefe4cf40a

See more details on using hashes here.

File details

Details for the file udata_hydra_csvapi-0.1.0.dev222-py3-none-any.whl.

File metadata

File hashes

Hashes for udata_hydra_csvapi-0.1.0.dev222-py3-none-any.whl
Algorithm Hash digest
SHA256 4d2c46070d98544cd1a0fc326392d6bb5e97a593f683c1694baf3d03fbf2822b
MD5 ca55e78a5c20aef069abc06d3ecada45
BLAKE2b-256 9e304198d9c83a708a9be2e7b80979e74e65711e54a6c49d7c7e7cfc1eef9617

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page