fastapi_3

FastAPI extention test (AUEB DMST)

https://github.com/geotsak314/fastapi_3

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (10.9%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

FastAPI extention test (AUEB DMST)

Basic Info
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created 9 months ago · Last pushed 9 months ago
Metadata Files
Readme Contributing Funding License Citation Security

README.md

FastAPI Export App

Export structured data to multiple formats and systems with FastAPI.
By Joanna Karytsioti & George Tsakalos (AUEB DMST – Spinelis SEIP)

PyPI - Python Version license


📦 Features

This FastAPI application supports exporting data to:

📁 File Formats

This app supports uploading your own .txt, .csv, or .json file (via Swagger UI),
automatically converting it to structured data for export.

You can also fetch data directly from an online SQLite or MySQL database by calling the /import-online-db endpoint.

This app supports uploading your own .txt, .csv, or .json file (via Swagger UI), automatically converting it to structured data for export.

  • JSON?format=json
  • CSV?format=csv
  • Excel?format=excel
  • PDF?format=pdf
  • Parquet?format=parquet
  • Avro?format=avro
  • Feather?format=feather
  • ORC?format=orc

🗄 Databases & Storage

  • MySQL?format=mysql
  • SQLite?format=sqlite
  • AWS S3?format=s3

🔄 Streaming Systems

  • Kafka?format=kafka
  • RabbitMQ?format=rabbitmq
  • Apache Pulsar?format=pulsar

🛠 Installation

Install the required dependencies:

bash pip install -r requirements-export-app.txt


▶️ Usage

Start the development server:

bash uvicorn main:app --reload

Visit http://127.0.0.1:8000 to access the Swagger UI and test the /export endpoint.

You can upload your own database file as input (in .json, .csv, or .txt format) and export it to any supported format. The conversion happens automatically.

You can also use the /import-online-db GET endpoint to fetch data from remote SQLite or MySQL databases.


🔐 Environment Variables

Set the following environment variables depending on your export target:

AWS S3

env AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... AWS_S3_BUCKET=... AWS_S3_OBJECT_KEY=...

MySQL

env MYSQL_HOST=... MYSQL_USER=... MYSQL_PASSWORD=... MYSQL_DATABASE=...

Kafka

env KAFKA_BOOTSTRAP_SERVERS=localhost:9092 KAFKA_TOPIC=exported_data

RabbitMQ

env RABBITMQ_HOST=localhost RABBITMQ_QUEUE=export_queue

Pulsar

env PULSAR_SERVICE_URL=pulsar://localhost:6650 PULSAR_TOPIC=exported_data


🧰 Tech Stack

  • FastAPI, Uvicorn
  • Pandas, XlsxWriter, ReportLab
  • PyArrow, FastAvro
  • MySQL Connector, Boto3, Kafka-Python
  • Pika, Pulsar-Client

See requirements-export-app.txt for full details.


Export app changed files vs. FastAPI

├── /fastapi # Official FastAPI root directory │ ├── /export_app # Our "export app" files package │ │ ├── main.py # export app main module │ │ ├── README.md # our export app readme doc │ │ ├── requirements-export-app.md # our export app modules run requirements │ │ └── test_export_app.py # Export app pytest │ ├── /docs # FastAPI docs │ │ ├── index.md # Export app index doc │ │ └── /usage │ │ └── export.md # Export app markdown (for endpoint usage) │ └── /.github │ └── /workflows │ └── test-export-app.yml # Export app test workflow ├── mkdocs-export.yml # Export app makedocs YAML └── requirements*.py # FastAPI official run requirements


📄 License

MIT License – for educational and contribution purposes.

Owner

  • Name: Georgios Tsakalos
  • Login: GeoTsak314
  • Kind: user
  • Location: Kallithea Athens
  • Company: Ministry of Finance (GR)

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: FastAPI
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Sebastián
    family-names: Ramírez
    email: tiangolo@gmail.com
identifiers:
repository-code: 'https://github.com/fastapi/fastapi'
url: 'https://fastapi.tiangolo.com'
abstract: >-
  FastAPI framework, high performance, easy to learn, fast to code,
  ready for production
keywords:
  - fastapi
  - pydantic
  - starlette
license: MIT

GitHub Events

Total
  • Push event: 27
  • Pull request event: 1
Last Year
  • Push event: 27
  • Pull request event: 1

Dependencies

.github/workflows/add-to-project.yml actions
  • actions/add-to-project v1.0.2 composite
.github/workflows/build-docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/contributors.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/deploy-docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/gh-pages.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/issue-manager.yml actions
  • tiangolo/issue-manager 0.5.1 composite
.github/workflows/label-approved.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
.github/workflows/labeler.yml actions
  • actions/labeler v5 composite
  • docker://agilepathway/pull-request-label-checker latest composite
.github/workflows/latest-changes.yml actions
  • actions/checkout v4 composite
  • mxschmitt/action-tmate v3 composite
  • tiangolo/latest-changes 0.3.2 composite
.github/workflows/notify-translations.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/official/build-docs.yml actions
  • actions/cache v4 composite
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • astral-sh/setup-uv v6 composite
  • dorny/paths-filter v3 composite
  • re-actors/alls-green release/v1 composite
.github/workflows/official/deploy-docs.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • cloudflare/wrangler-action v3 composite
.github/workflows/official/test-redistribute.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • re-actors/alls-green release/v1 composite
.github/workflows/people.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/publish.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • pypa/gh-action-pypi-publish v1.12.4 composite
.github/workflows/smokeshow.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
.github/workflows/sponsors.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • mxschmitt/action-tmate v3 composite
.github/workflows/test-export-app.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
.github/workflows/test-redistribute.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • re-actors/alls-green release/v1 composite
.github/workflows/test.yml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • astral-sh/setup-uv v6 composite
  • re-actors/alls-green release/v1 composite
.github/workflows/topic-repos.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
export_app/requirements-export-app.txt pypi
  • boto3 *
  • fastapi *
  • fastavro *
  • httpx *
  • kafka-python *
  • mysql-connector-python *
  • pandas *
  • pika *
  • pulsar-client *
  • pyarrow *
  • reportlab *
  • uvicorn *
  • xlsxwriter *
pyproject.toml pypi
  • pydantic >=1.7.4,!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0
  • starlette >=0.40.0,<0.47.0
  • typing-extensions >=4.8.0
requirements-docs-insiders.txt pypi
requirements-docs-tests.txt pypi
  • httpx >=0.23.0,<0.28.0 test
  • ruff ==0.11.2 test
requirements-docs.txt pypi
  • black ==25.1.0
  • cairosvg ==2.7.1
  • griffe-typingdoc ==0.2.7
  • jieba ==0.42.1
  • markdown-include-variants ==0.0.4
  • mdx-include >=1.4.1,<2.0.0
  • mkdocs-macros-plugin ==1.3.7
  • mkdocs-material ==9.6.1
  • mkdocs-redirects >=1.2.1,<1.3.0
  • mkdocstrings ==0.26.1
  • pillow ==11.1.0
  • pyyaml >=5.3.1,<7.0.0
  • typer ==0.15.3
requirements-github-actions.txt pypi
  • PyGithub >=2.3.0,<3.0.0
  • httpx >=0.27.0,<0.28.0
  • pydantic >=2.5.3,<3.0.0
  • pydantic-settings >=2.1.0,<3.0.0
  • pyyaml >=5.3.1,<7.0.0
  • smokeshow *
requirements-tests.txt pypi
  • PyJWT ==2.8.0 test
  • anyio >=3.2.1,<5.0.0 test
  • coverage >=6.5.0,<8.0 test
  • dirty-equals ==0.9.0 test
  • flask >=1.1.2,<4.0.0 test
  • inline-snapshot >=0.21.1 test
  • mypy ==1.8.0 test
  • passlib >=1.7.2,<2.0.0 test
  • pytest >=7.1.3,<9.0.0 test
  • pyyaml >=5.3.1,<7.0.0 test
  • sqlmodel ==0.0.24 test
  • types-orjson ==3.6.2 test
  • types-ujson ==5.10.0.20240515 test
requirements-translations.txt pypi
  • pydantic-ai ==0.0.30
requirements.txt pypi
  • playwright *
  • pre-commit >=2.17.0,<5.0.0