A program that dynamically generates a read-only REST API from spreadsheets, simplifying the process of creating consumable APIs.
There are 3 main aims of apiT
- Allow anyone to create an api from a csv file, removing the need for people to develop their own custom systems
- Allow fully fledged and dynamic filtering on these csv files
- Allow multiple csv files to be hosted at once, allowing for multiple endpoints
Currently apiT requires python 3.13 and venv
Firstly clone this repository, then cd apiT
Next:
python -m venv venv
to create the virtual environment (to keep the packages separate from the rest of your system)
Then active venv and install the packages:
./venv/Scripts/activate
pip install -r requirements.txt
Finally, to activate the fastapi dev server run:
fastapi dev
In the future, we hope to have a preconfigured docker file for easy hosting
For now, any csv files you want to host must go in the apiT/datasets folder. They must be in csv format (not .xlsx, .tsv, .ods, etc).
We recommend a single word name for each dataset, i.e customers.csv, products.csv
There is an example.csv already in the datasets/ folder, which you can test once running the server at 127.0.0.1:8000/api/example
Credit for this example.csv goes to Datablist's customer-100.csv
- Add an admin panel to simplify uploading of csv files
- Allow for more spreadsheet extensions (.xlsx, .tsv, .ods, etc)
- Dockerised version, ready for deployment
- Rate limits / Api Keys
- SQLite Database for storing of CSV
- Versioned endpoints for if newer versions of files differ drastically (removal/rename of columns, mass data changes, etc)