All Projects → rszamszur → fastapi-mvc

rszamszur / fastapi-mvc

Licence: MIT license
Developer productivity tool for making high-quality FastAPI production-ready APIs.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to fastapi-mvc

fastapi-pydiator
Python clean architecture and usecase implementation with fastapi and pydiator-core
Stars: ✭ 58 (-55.73%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
fastapi-starter
A FastAPI based low code starter: Async SQLAlchemy, Postgres, React-Admin, pytest and cypress
Stars: ✭ 97 (-25.95%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
fastapi-uvicorn-gunicorn-nginx-supervisor-boilerplate
Production ready boilerplate to start with Fastapi
Stars: ✭ 17 (-87.02%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
fastapi-boilerplate
FastAPI boilerplate for real world production
Stars: ✭ 145 (+10.69%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
FastAPI Tortoise template
FastAPI - Tortoise ORM - Celery - Docker template
Stars: ✭ 144 (+9.92%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
FastAPI-template
Feature rich robust FastAPI template.
Stars: ✭ 660 (+403.82%)
Mutual labels:  fastapi, fastapi-template, fastapi-boilerplate
FRDP
Boilerplate code for quick docker implementation of REST API with JWT Authentication using FastAPI, PostgreSQL and PgAdmin ⭐
Stars: ✭ 55 (-58.02%)
Mutual labels:  fastapi, fastapi-boilerplate
FastApi-boilerplate
Project template for python FastApi
Stars: ✭ 41 (-68.7%)
Mutual labels:  fastapi, fastapi-template
fastapi-csv
🏗️ Create APIs from CSV files within seconds, using fastapi
Stars: ✭ 46 (-64.89%)
Mutual labels:  fastapi, fastapi-template
tifa
Yet another opinionated fastapi-start-kit with best practice
Stars: ✭ 82 (-37.4%)
Mutual labels:  fastapi, fastapi-template
redis-developer.github.io
The Home of Redis Developers
Stars: ✭ 28 (-78.63%)
Mutual labels:  helm, redis-cluster
mediasoup-broadcast-example
Mediasoup WebRTC vanilla JS broadcast example.
Stars: ✭ 107 (-18.32%)
Mutual labels:  helm
application
✨ Extra contrib to nette/application (@nette)
Stars: ✭ 23 (-82.44%)
Mutual labels:  mvc
emqx-chart
emqx kubernetes helm
Stars: ✭ 18 (-86.26%)
Mutual labels:  helm
fast-api-sqlalchemy-template
Dockerized web application on FastAPI, sqlalchemy1.4, PostgreSQL
Stars: ✭ 25 (-80.92%)
Mutual labels:  fastapi
ProType
A new kind of object oriented front-end JS framework.
Stars: ✭ 80 (-38.93%)
Mutual labels:  mvc
Stack-Lifecycle-Deployment
OpenSource self-service infrastructure solution that defines and manages the complete lifecycle of resources used and provisioned into a cloud! It is a terraform UI with rest api for terraform automation
Stars: ✭ 88 (-32.82%)
Mutual labels:  fastapi
Lightweight-PHP-Framework-For-Web-and-APIs
Simple PHP framework that helps you quickly understand and write simple APIs.
Stars: ✭ 24 (-81.68%)
Mutual labels:  mvc
focus
Community system build using GoFrame.
Stars: ✭ 103 (-21.37%)
Mutual labels:  mvc
mvc
PHP MVC boilerplate with user authentication, basic security and MySQL CRUD operations.
Stars: ✭ 28 (-78.63%)
Mutual labels:  mvc

fastapi-mvc

fastapi-mvc CI codecov K8s integration Code style: black PyPI PyPI - Downloads PyPI - Python Version GitHub


Documentation: https://fastapi-mvc.netlify.app

Source Code: https://github.com/rszamszur/fastapi-mvc

Example generated project: https://github.com/rszamszur/fastapi-mvc-example


Fastapi-mvc is a developer productivity tool for FastAPI web framework. It is designed to make programming FastAPI applications easier by making assumptions about what every developer needs to get started. It allows you to write less code while accomplishing more. Core features:

  • Generated project Based on MVC architectural pattern
  • WSGI + ASGI production server
  • Generated project comes with Sphinx documentation and 100% unit tests coverage
  • Kubernetes deployment with Redis HA cluster
  • Makefile, GitHub actions and utilities
  • Helm chart for Kubernetes deployment
  • Dockerfile with K8s and cloud in mind
  • Generate pieces of code or even your own generators
  • Uses Poetry dependency management
  • Reproducible development environment using Vagrant or Nix

Fastapi-mvc comes with a number of scripts called generators that are designed to make your development life easier by creating everything that’s necessary to start working on a particular task. One of these is the new application generator, which will provide you with the foundation of a fresh FastAPI application so that you don’t have to write it yourself.

Creating a new project is as easy as:

$ fastapi-mvc new /tmp/galactic-empire

This will create a fastapi-mvc project called galactic-empire in a /tmp/galactic-empire directory and install its dependencies using make install.

Once project is generated and installed lets run development uvicorn server (ASGI):

$ cd /tmp/galactic-empire
$ fastapi-mvc run
[INFO] Executing shell command: ['/home/demo/.poetry/bin/poetry', 'install', '--no-interaction']
    Installing dependencies from lock file
    
    No dependencies to install or update
    
    Installing the current project: galactic-empire (0.1.0)
[INFO] Executing shell command: ['/home/demo/.poetry/bin/poetry', 'run', 'uvicorn', '--host', '127.0.0.1', '--port', '8000', '--reload', 'galactic_empire.app.asgi:application']
INFO:     Will watch for changes in these directories: ['/tmp/galactic-empire']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [4713] using watchgod
INFO:     Started server process [4716]
INFO:     Waiting for application startup.
INFO:     Application startup complete.

To confirm it’s actually working:

$ curl 127.0.0.1:8000/api/ready
{"status":"ok"}

Now let's add new API endpoints. For that we need to generate new controller:

$ fastapi-mvc generate controller death_star status load:post fire:delete

And then test generated controller endpoints:

$ curl 127.0.0.1:8000/api/death_star/status
{"hello":"world"}
$ curl -X POST 127.0.0.1:8000/api/death_star/load
{"hello":"world"}
$ curl -X DELETE 127.0.0.1:8000/api/death_star/fire
{"hello":"world"}

You will see it working in server logs as well:

INFO:     127.0.0.1:47284 - "GET /api/ready HTTP/1.1" 200 OK
INFO:     127.0.0.1:55648 - "GET /api/death_star/status HTTP/1.1" 200 OK
INFO:     127.0.0.1:55650 - "POST /api/death_star/load HTTP/1.1" 200 OK
INFO:     127.0.0.1:55652 - "DELETE /api/death_star/fire HTTP/1.1" 200 OK

You can get the project directly from PyPI:

pip install fastapi-mvc

Projects created with fastapi-mvc

If you have created a project with fastapi-mvc, feel free to open PR and add yourself to the list. Share your story and project. Your success is my success :)

Projects:

Contributing

CONTRIBUTING

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].