Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apiT

A program that dynamically generates a read-only REST API from spreadsheets, simplifying the process of creating consumable APIs.

Aims

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

Running the system

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

Using the system

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

Future Work

  • 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)

About

A program that dynamically generates a read-only REST API from spreadsheets, simplifying the process of creating consumable APIs

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages