A Simple FastAPI authentication & Login API using GraphQL and JWT.
I choose this Name JeffQL cause i have a Low level Friend with a Nickname Jeff i wish he understand that Python and JavaScript is the future 🚀
- Python 3.8.6 or higher
- FastAPI
- Docker
# clone the repo
$ git clone https://github.com/yezz123/JeffQL
# move to the project folder
$ cd JeffQL- Install
pipenva global python projectpip install pipenv - Create a
virtual environmentfor this project
# creating pipenv environment for python 3
$ pipenv --three
# activating the pipenv environment
$ pipenv shell
# if you have multiple python 3 versions installed then
$ pipenv install -d --python 3.8
# install all dependencies (include -d for installing dev dependencies)
$ pipenv install -d- To run the Main we need to use uvicorn a lightning-fast ASGI server implementation, using uvloop and httptools.
# Running the application using uvicorn
$ uvicorn main:app
## To run the Application under a reload enviromment use -- reload
$ uvicorn main:app --reload- We have the Dockerfile created in above section. Now, we will use the Dockerfile to create the image of the FastAPI app and then start the FastAPI app container.
$ docker build- list all the docker images and you can also see the image
jeffql:latestin the list.
$ docker images- run the application at port 5000. The various options used are:
-p: publish the container's port to the host port.-d: run the container in the background.-i: run the container in interactive mode.-t: to allocate pseudo-TTY.--name: name of the container
$ docker container run -p 5000:5000 -dit --name JeffQL jeffql:latest- Check the status of the docker container
$ docker container psIncludes preconfigured packages to kick start JeffQL by just setting appropriate configuration.
| Package | Usage |
|---|---|
| uvicorn | a lightning-fast ASGI server implementation, using uvloop and httptools. |
| graphene-python | a library for building GraphQL APIs in Python easily. |
| PyJWT | a Python library which allows you to encode and decode JSON Web Tokens (JWT). |
| starlette | a lightweight ASGI framework/toolkit, which is ideal for building high performance asyncio services. |
- Join the JeffQL Creator and Contribute to the Project if you have any enhancement or add-ons to create a good and Secure Project, Help any User to Use it in a good and simple way.
This project is licensed under the terms of the MIT license.