Skip to content

hamidgh01/BlogAPI-FastAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog API - FastAPI

A RESTful API using FastAPI, SqlAlchemy, Postgresql, Redis, Pytest, etc.
NOTE: project is developing and explanations is not completed yet. the README will be completed more and more along with adding new features!

Features


Project Structure

├── docs
├── src
│   ├── auth/                       # JWT Authentication Logic (+ TokenRevocation)
│   │
│   ├── core/                       # Configurations and Core Utils (db & redis setup,
│   │                               # settings, custom-exception, middlewares, etc.)
│   │
│   ├── crud/                       # Database Raw CRUD Logic (NO business logic)
│   ├── migrations/                 # Database Table's Migrations (managed by alembic)
│   ├── models/                     # SQLAlchemy Models (User, Post, Tag, Comment, etc.)
│   ├── routes/                     # API Endpoints
│   ├── schemas/                    # Pydantic Models for API Endpoints
│   ├── services/                   # Layer Between CRUD & Routes (includes business logic)
│   ├── tests/
│   ├── utils/
│   │   ├── dependencies.py         # Endpoint's Dependencies (db, redis, current-user & admin)
│   │   ├── exception_handler.py    # Custom Handler for Custom Exceptions
│   │   └── utils.py                # ...
│   │
│   └── main.py                     # FastAPI Entry Point
│
├── .env.example                    # ...
├── .gitignore
├── alembic.ini                     # ...
├── LICENSE
├── README.md
└── requirements.txt

Work Cycle

...


Project's Database Entity Relationship

  • ...

Setup and Test

  • ...

License

This project is licensed under the MIT License. See the LICENSE file for more details.



Developed by hamidgh01

About

Simple Blog API using FastAPI, SqlAlchemy, Postgresql, Redis, Pytest, etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published