The Blogging Application's REST API is a web-based platform that empowers bloggers and users to share their ideas and perspectives in an interactive way. The API allows users to publish blogs on their personal profiles, complete with image support, which enhances the user experience. The API also enables users to view and search for blogs and blog categories that align with their personal interests, fostering a community-driven platform. Users can also leave comments on published posts, encouraging engagement.
The API uses standard HTTP methods to retrieve, create, update, and delete data, providing a secure and robust way for the Blogging Application to interact with the data, making it easy and safe for users to share their thoughts and ideas. This REST API is an ideal solution for anyone who wants to connect with others and share their ideas through blogging.
- The API implements Spring Security and JSON Web Token (J.W.T) for authentication, validation, and authorization of users and administrators.
- The API includes functionality for pagination, sorting, and searching of data.
- The API implements custom exception handling for all exceptions and validations.
- The API utilizes custom request and response data transfer objects for all HTTP requests.
- The API's primary objective is to provide a streamlined and user-friendly blogging experience for users.
- Built on REST Architecture
- Consumable by clients that support HTTP Protocol
- Can be integrated with any application that supports REST API
- Suitable for a wide range of use cases.
- JAVA
- SPRING
- SPRINGBOOT
- HIBERNATE
- MAVEN
- J.D.B.C
- MYSQL
- POSTMAN
- JWT AUTHENTICATION
- SPRING SECURITY
- SPRING DATA JPA
- SPRING BOOT DEVTOOLS
- SPRING WEB
- HIBERNATE
- MYSQL DRIVER
- VALIDATION
- LOMBOK
- MODEL MAPPER
- LOGGER
-
Authentication Management
- Endpoint for Sign Up
- Endpoint for Sign In
- Endpoint for Sign Out
-
Profile Management
- Endpoint for Updating User Information
- Endpoint for Retrieving User Information
- Endpoint for Deleting User Account
-
Post Management
- Endpoint for Creating Posts
- Endpoint for Updating Posts
- Endpoint for Retrieving Posts
- Endpoint for Deleting Posts
- Endpoint for Adding Comments to Posts
- Endpoint for Updating Post Images
- Endpoint for Retrieving Posts with Custom Pagination
-
Category Management
- Endpoint for Creating Categories
- Endpoint for Updating Categories
- Endpoint for Retrieving Categories
- Endpoint for Deleting Categories
-
Searching & Sorting Posts
- Endpoint for Searching Posts by :
- Title
- Date
- Category
- Endpoint for Sorting Posts by :
- Date
- Popularity
- Endpoint for Searching Posts by :
-
User Search
- Endpoint for Searching Users by :
- Name
- Endpoint for Searching Users by :
-
Authentication Management
- Endpoint for Sign Up Other Admin Accounts
- Endpoint for Sign In
- Endpoint for Sign Out
-
Profile Management
- Endpoint for Deleting Admin Accounts
-
Post Management
- Endpoint for Retrieving Posts
- Endpoint for Deleting Posts
-
Category Management
- Endpoint for Retrieving Categories
- Endpoint for Deleting Categories
-
Comment Management
- Endpoint for Retrieving Comments
- Endpoint for Deleting Comments
Install the Spring Tools Suite
https://spring.io/tools
Install MySQL Community Server
https://dev.mysql.com/downloads/mysql/
Clone the Project
git clone https://github.com/TejasMedade/Blog-Application
Open MySQL Server
Create a New Database in SQL: "blog_db"
Admin Login Details For Your Database
{
"password": "Tejas@1998",
"username": "[email protected]"
}
Go to the Project Directory
Open the Blog Application Folder with S.T.S
Go to src/main/resources > application.properties & change your username and password (MySQL server username & password)
spring.datasource.username="username"
spring.datasource.password="password"
To change the Server Port
server.port=8088
Go to com.masai package > Blog_Application.java
Run as Spring Boot App !
Swagger-UI
At present, Swagger does not support cookie-based authorization. The team will look into implementing it once Swagger provides the necessary features to support it.
-
At present, Swagger does not support cookie-based authorization. The team will look into implementing it once Swagger provides the necessary features to support it.
-
When utilizing the PostMan software, ensure that the request includes embedded cookies as JWT authentication is implemented as a cookie-based authentication mechanism.
-
The roles have already been established within the database. Ensure that the appropriate requests are executed for both the Admin and User roles.
-
It's important to note that an Admin is also considered as a User. Only Users with Admin privileges have the ability to create additional Admins within the database.
-
The expiration time limit for JWT tokens is 20 minutes. Subsequently, a new login session is required after the 20-minute duration.
http://localhost:8088
Check Out the Below Given Link For Documentation with all API Requests, Responses, Headers & Request Body.
POSTMAN DOCUMENTATION : https://documenter.getpostman.com/view/24342917/2s8ZDbVL15
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are Greatly Appreciated.
If you have any ideas on how to improve this resume, please feel free to fork the repository and submit a pull request. Your contributions, no matter how big or small, are greatly appreciated and will help to make this repository even better.
In addition to contributing to the repository, you can also connect with me for further development and collaboration on this API. Together, we can continue to improve and evolve the API to meet the needs of the community.
We encourage you to give the repository a star and we thank you for your interest in this project.
Your support is greatly appreciated.