Skip to content

Feature: source type http_post_file per download via POST #183

@Gabrymi93

Description

@Gabrymi93

Problema

Il toolkit non ha un source type per download via HTTP POST. I candidate che usano endpoint POST (es. MEF DAG datipensioni) sono costretti a script locali di staging fuori dal toolkit.

Caso reale: dataset-incubator/candidates/pensioni-pa-dag usa scripts/download_raw.py con requests.post(url, data={...}) per scaricare Dati_Tipo_Pensione_totale.csv.

Proposta

Aggiungere un plugin http_post_file che estende http_file con supporto POST:

raw:
  sources:
    - name: "pensioni_dag"
      type: "http_post_file"
      args:
        url: "https://datipensioni.mef.gov.it/datipensioni/downloadFile"
        post_data:
          filename: "Dati_Tipo_Pensione_totale.csv"
          categoria: "pensioni"

Note implementative

  • http_file.py fa già fetch, caching e write — il nuovo plugin deve solo:
    1. usare requests.post invece di requests.get
    2. passare data= per i parametri POST
    3. gestire l'eventuale retry con cookie (pattern usato nel caso DAG: GET sulla page prima del retry POST)
  • Registrare in toolkit/plugins/__init__.py come builtin
  • Stesso pattern di test di http_file

Stimoy sforzo

Basso. Plugin esistente http_file.py come base, ~50-80 righe di codice nuovo + test.

Alternativa

Restare con script locali nei candidate — ma questo frammenta la logica di fetch fuori dal toolkit e rende i candidate meno autosufficienti.


Ref: dataset-incubator#96

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions