rrajesh1979 / java-spring-mongo-rest-ref

Java Spring Mongo REST API Reference

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Java Spring MongoDB REST API Reference

This is a simple URL Shortener App.

Build Quality Gate Status GitHub GitHub last commit GitHub commit activity GitHub pull requests GitHub issues GitHub contributors GitHub watchers Vulnerabilities scan - Snyk

Key FeaturesGetting StartedUsageContributingLicense

Key Features

This is a URL shortener REST API.

  • API is built using
    • Java 17
    • GraalVM native image
    • Spring Boot 3.0.0
    • Spring Data
  • MongoDB is used as the database
  • Bucket4j is used for rate limiting
    • Alternative using Resilience4j TBD
  • Spring Cache is used for caching
  • Gradle is used for dependency management
  • Swagger UI for API documentation
  • Testing
    • JUnit 5 tests
    • Mockito for mocking
    • Testcontainers for integration tests
    • Testing URL Redirect TBD
  • Quality Assurance
    • Jacoco for test coverage
    • SonarQube for code quality analysis
  • CI/CD
    • GitHub Actions
    • Security scanning using Snyk
  • Containerization & Deployment
    • Docker
    • Docker Compose
    • jib plugin for building Docker images

Getting Started

  • Clone the repository
  • Make sure pre-requisites are installed
    • Java 17+, GraalVM
    • MongoDB
    • Docker
  • Build the application
    • ./gradlew build
  • Run the application
    • ./gradlew bootRun
  • Build the Docker image
    • ./gradlew jibCustom
  • Run the application in Docker
    • docker-compose up
    • This will bring up the application and MongoDB

Usage

Swagger UI

Swagger UI is available at http://localhost:8000/api/v1/swagger-ui/index.html alt text

Build Status

Build

Code Quality

Quality Gate Status

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

GitHub

About

Java Spring Mongo REST API Reference

License:MIT License


Languages

Language:Java 93.7%Language:Kotlin 6.3%