Mock API
- Published on
- Duration
- 2 Weeks
- Role
- Full-Stack Developer
Description
This project aims to significantly improve processes and build high-quality software for a software development team. The main goal is to address coordination delays between different development teams working on new projects. The solution involves creating a tool for sketching and consuming pre-designed APIs, which helps reduce downtime between projects. This project enhances development efficiency by enabling quick API mockup creation and reducing inter-team waiting times, thus fostering a more streamlined and productive development environment.
Key features:
- User Registration and Access Control:
- Automatic creation of an administrator user upon system initialization.
- The administrator is the only user with permissions to create new users and assign roles.
- API Mockup Management:
- Mockups are associated with the user who created them, other users cannot view those, but the administrator can.
- Rest Mock Features:
- Endpoint path to be accessed by
- Access method (GET, POST, PUT, PATCH, DELETE, OPTIONS)
- Response headers (key-value pairs)
- HTTP response code
- Content-Type for response
- Response body
- Endpoint name and description
- Endpoint expiration time (default one year, with options for 1 month, 1 week, 1 day, 1 hour)
- Response delay time in seconds
- Option to enable JWT validation for endpoint access, with JWT generated based on endpoint expiration date.
- Projects:
- The users can create a new project and associate endpoints to it.
- Internazionalization (i18n):
- Mockup creation form support multiple languages, depending on the Accept-language Header.
- Security:
- Management of mockups creation is controlled via Spring Security.
Technologies / Tools
- Java
- Spring Boot
- H2/MySQL
- JPA
- Html/CSS/JavaCcript
- Thymeleaf
- Cookies
- Session
- JWT
Demo
For admin perspective use:
- User: admin
- Password: admin
For user perspective use:
- User: user
- Password: user
Here's the link to the demo where you can interact with the application.
This is a video summary about the functionality (Coming Soon!):