https://github.com/yawkar/marvel-catalog
(Hobby project) REST API service for managing catalog of superheroes and comics
https://github.com/yawkar/marvel-catalog
docker-compose hobby-project java rest-api spring spring-boot swagger
Last synced: 2 months ago
JSON representation
(Hobby project) REST API service for managing catalog of superheroes and comics
- Host: GitHub
- URL: https://github.com/yawkar/marvel-catalog
- Owner: YawKar
- Created: 2022-07-07T20:25:08.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2022-11-01T18:53:28.000Z (over 3 years ago)
- Last Synced: 2025-05-27T09:34:45.398Z (about 1 year ago)
- Topics: docker-compose, hobby-project, java, rest-api, spring, spring-boot, swagger
- Language: Java
- Homepage:
- Size: 159 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
Awesome Lists containing this project
README
# Marvel catalog - REST API service
REST API service for managing catalog of superheroes and comics
![Project stage: Development][project-stage-badge: Development]
[project-stage-badge: Development]: https://img.shields.io/badge/Project%20Stage-Development-yellowgreen.svg
## Table of Contents
* [How to run](#how-to-run)
* [API endpoints](#api-endpoints)
* [Database UML Model](#database-uml-model)
* [Technologies and Features used](#technologies-and-features-used)
## How to run
```bash
./mvnw clean # clean /target (if it's not the first run)
./mvnw package -Dmaven.test.skip # build .jar (and skip testing)
docker compose up # run composition
```
## API endpoints
Postman collection is available for playing with api: [Marvel Catalog.postman_collection.json](docs/Marvel%20Catalog.postman_collection.json)
* Swagger UI docs
* `GET /ui-docs`
* Opens Swagger UI docs
* Characters controller
* `GET /v1/public/characters`
* Gets the list of all heroes from the catalog
* `GET /v1/public/characters/{heroId}`
* Gets a hero by the specified `heroId`
* `GET /v1/public/characters/{heroId}/comics`
* Gets all comics in which the hero with the specified `heroId` present
* `POST /v1/public/characters`
* Posts new hero
* `PUT /v1/public/characters/{heroId}`
* Updates the existing hero
* `PUT /v1/public/characters/{heroId}/comics`
* Updates comics in which the hero presents
* Comics controller
* `GET /v1/public/comics`
* Gets the list of all comics from the catalog
* `GET /v1/public/comics/{comicId}`
* Gets the comic by the specified `comicId`
* `GET /v1/public/comics/{comicId}/characters`
* Gets all heroes which present in the comic with the specified `comicId`
* `POST /v1/public/comics`
* Posts new comic
* `PUT /v1/public/comics/{comicId}`
* Updates the existing comic
## Database UML Model
UML/Entities Relationship diagram:

## Technologies and Features used










* Spring
* Spring Boot 2.7.1
* Spring Data JPA
* Spring Boot Starter Validation
* JUnit 5
* PostgreSQL 14
* ModelMapper
* Swagger
* Springdoc
* Swagger Annotations
* Docker
* docker-compose (PostgreSQL14 + Spring Boot)
* Postman
* StarUML