FastApp

HTTP Apps Made Easier with FastApp

Installation

pip install fastapp

Using Out the Example Server

pip install fastapp[example]
fastapp serve-debug fastapp.app.example:app

Using FastApp to build an app

Create a Python File with Endpoints, we’ll call this main.py:

from datetime import datetime

from fastapp.app import app


@app.get("/hello")
def custom_endpoint() -> dict:
    """"
    This is a Custom API Endpoint
    """
    return dict(timestamp=datetime.now(),
                hello="world")

Then, using the FastApp CLI we can serve this App:

fastapp serve-debug main:app

…or via docker:

docker run --rm -it \
    --publish 8080:8080 \
    --volume ${PWD}/main.py:/root/fastapp/main.py \
    juftin/fastapp:latest \
    serve-debug main:app

Test out our new endpoint:

curl \
  --request GET \
  --header "Content-Type: application/json" \
  http://localhost:8080/hello

Alternatively, if we want to serve this app using Gunicorn, Nginx, and the UvicornWorker we can use the serve command:

fastapp serve main:app

I prefer doing this within a docker container so you don’t have to run Nginx on the host machine:

docker run --rm -it \
    --publish 8080:8080 \
    --volume ${PWD}/main.py:/root/fastapp/main.py \
    juftin/fastapp:latest \
    serve main:app