2.1 KiB
2.1 KiB
Blogging Platform API
This is a RESTful API for a simple blogging platform built using the FastAPI framework in Python. The API allows users to perform CRUD operations on blog posts, comment on posts, and like/dislike comments. Data is stored in a MongoDB database.
Setup Instructions
-
Clone the Repository: Clone the repository to your local machine:
git clone <repository_url>
-
Install Dependencies: Navigate to the project directory and install dependencies:
pip install fastapi uvicorn motor python-dotenv
-
Create
.env
file: Create a.env
file in the project src directory with the following content:MONGODB_URL=<your_mongodb_url>
-
Run the API: Start the API server using Uvicorn:
uvicorn main:app --reload
API Documentation
Posts
- Create Post:
POST /posts/
- Create a new post with a title and content.
- Read Post:
GET /posts/{post_id}
- Retrieve details of a specific post by ID.
- Read All Posts:
GET /posts/
- Retrieve details of all posts.
- Update Post:
PUT /posts/{post_id}
- Update an existing post by ID.
- Delete Post:
DELETE /posts/{post_id}
- Delete a post by ID.
Comments
- Create Comment:
POST /comments/
- Create a new comment associated with a post.
- Read Comments:
GET /comments/{post_id}
- Retrieve all comments associated with a specific post by ID.
- Update Comment:
PUT /comments/{comment_id}
- Update an existing comment by ID.
- Like Comment:
PUT /comments/{comment_id}/like
- Increment the like count of a comment by ID.
- Dislike Comment:
PUT /comments/{comment_id}/dislike
- Increment the dislike count of a comment by ID.
Data Models
Post
{
"title": str, # Title of the post
"content": str # Content of the post
}
Comment
{
"post_id": str, # ID of the post to which the comment belongs
"text": str, # Text content of the comment
"likes": int, # Number of likes for the comment
"dislikes": int # Number of dislikes for the comment
}