This project is a simple blog API built with FastAPI, demonstrating basic CRUD operations, user authentication, and database integration.
main.py: The main FastAPI applicationmodels.py: SQLAlchemy ORM modelsschemas.py: Pydantic models for request/response validationdatabase.py: Database connection and session managementauth.py: Authentication and security functionscrud.py: CRUD operations for the databaserequirements.txt: List of project dependencies
-
Clone the repository:
git clone https://github.com/yourusername/fastapi-blog-api.git cd fastapi-blog-api -
Create and activate a virtual environment:
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate` -
Install the dependencies:
pip install -r requirements.txt -
Run the application:
uvicorn main:app --reload
The API will be available at http://localhost:8000. You can access the interactive API documentation at http://localhost:8000/docs.
- POST
/users: Create a new user - POST
/token: Login and get an access token - POST
/blog_posts: Create a new blog post (requires authentication) - GET
/blog_posts: Get a list of blog posts - GET
/blog_posts/{post_id}: Get a specific blog post - PUT
/blog_posts/{post_id}: Update a blog post (requires authentication) - DELETE
/blog_posts/{post_id}: Delete a blog post (requires authentication)
- User registration and authentication using JWT tokens
- CRUD operations for blog posts
- SQLite database integration using SQLAlchemy
- Pydantic models for request/response validation
- Interactive API documentation with Swagger UI