- Notifications
You must be signed in to change notification settings - Fork1
FastAPI (API) Server - Open-Source project | AppSeed
app-generator/api-server-fastapi
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
FastAPI (API) Server
SimpleFastAPI Starter enhanced withJWT authentication,OAuth viaGitHub,SqlAlchemy,SQLite persistence and deployment scripts via Docker - Actively supported byApp-Generator.
👉 For moreFastAPI Resources please access:
Product Roadmap &
Features:
| Status | Item | info |
|---|---|---|
| ✅ | Up-to-date Dependencies | - |
| ✅ | JWT Authentication | (login, logout, register) viaoauth2 |
| ✅ | OAuth | via GitHub` |
| ✅ | Persistence | SQLite,MySql |
| ✅ | Docker | - |
| ✅ | Unitary tests | minimal suite |
Get the code
$ git clone https://github.com/app-generator/api-server-fastapi.git$cd api-server-fastapiStart the app in Docker
$ docker-compose up --build
Note: Theenv.sample file will be used to set the environment variables for the docker container. Make sure to set them as needed.The API server will start using the PORT5000.
Step #1 - Clone the project
$ git clone https://github.com/app-generator/api-server-flask.git$cd api-server-flaskStep #2 - create virtual environment using python3 and activate it (keep it outside our project directory)
$# Virtualenv modules installation (Unix based systems)$ virtualenv env$source env/bin/activate$$# Virtualenv modules installation (Windows based systems)$# virtualenv env$# .\env\Scripts\activate
Step #3 - Install dependencies in virtualenv
$ pip install -r requirements.txt
Step #5 - Create a new
.envfile using sampleenv.sample
The meaning of each variable can be found below:
DEBUG: ifTruethe app runs in develoment mode- For production value
Falseshould be used
- For production value
SECRET_KEY: used in assets managementGITHUB_CLIENT_ID: For GitHub social loginGITHUB_SECRET_KEY: For GitHub social loginDATABASE_HOSTNAME: For Mysql databseDATABASE_PORT: For Mysql databseDATABASE_PASSWORD: For Mysql databseDATABASE_NAME: For Mysql databseDATABASE_USERNAME: For Mysql databseALGORITHM: For JWT TokensACCESS_TOKEN_EXPIRE_MINUTES: For JWT Tokens
Step #6 - start test APIs server at
localhost:5000
$ uvicorn src.app:app
Use the API viaPOSTMAN or Swagger Dashboard.
api-server-flask/├── src ├── helpers ├── database.py └── utils.py ├── routers ├── users.py│ ├── __init__.py│ ├── app.py│ ├── config.py│ ├── models.py│ ├── oatuh2.py│ └── schemas.py├── tests ├── __init__.py ├── conftest.py ├── database.py └── test_users.py├── Dockerfile├── docker-compose.yaml├── README.md├── requirements.txt├── run.py
For a fast set up, use thisPOSTMAN file:api_sample
Register -
api/users/register(POST request)
POST api/users/registerContent-Type: application/json{ "username":"test", "password":"pass", "email":"test@appseed.us"}Login -
api/users/login(POST request)
POST /api/users/loginContent-Type: application/json{ "password":"pass", "email":"test@appseed.us"}Logout -
api/users/logout(POST request)
POST api/users/logoutContent-Type: application/jsonauthorization: JWT_TOKEN (returned by Login request){ "token":"JWT_TOKEN"}Run tests usingpytest tests.py
FastAPI (API) Server - Open-source eCommerce Starter provided byApp-Generator.
About
FastAPI (API) Server - Open-Source project | AppSeed
Topics
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.
