Spring BootSpring SecurityH2Thymeleaf

Mock API

By Gabriel Cepeda
Picture of the author
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:

  1. 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.
  2. API Mockup Management:
    • Mockups are associated with the user who created them, other users cannot view those, but the administrator can.
  3. 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.
  4. Projects:
    • The users can create a new project and associate endpoints to it.
  5. Internazionalization (i18n):
    • Mockup creation form support multiple languages, depending on the Accept-language Header.
  6. 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!):