An open API service indexing awesome lists of open source software.

https://github.com/ivan-montes/hexagonal-arch-proof

:traffic_light::warning::construction: REST API with hexagonal architecture, Kafka, Kafka-UI and OpenApi Swagger
https://github.com/ivan-montes/hexagonal-arch-proof

docker docker-compose eclipse hexagonal-architecture java kafka maven microservices sonarqube spring swagger

Last synced: 3 months ago
JSON representation

:traffic_light::warning::construction: REST API with hexagonal architecture, Kafka, Kafka-UI and OpenApi Swagger

Awesome Lists containing this project

README

          

# hexagonal-arch-proof

REST API with hexagonal architecture, Kafka, Kafka-UI and OpenApi Swagger

**Components**
- REST API with [OpenApi Swagger](https://swagger.io/) [8080]
- [Kafka](https://kafka.apache.org/) [9092] + [9093]
- [Kafka-UI](https://docs.kafka-ui.provectus.io/) [8081]

## Table of contents

- [Installation](#installation)
- [Usage](#usage)
- [It's not a bug, it's a feature](#features)
- [Maintainers](#maintainers)
- [License](#license)

## Installation

1. First of all clone or download the project.

1. Inside the main folder, you could find two docker-compose yaml files.

1. From there use the command line to start the project in dev or production mode

```
**Developing mode**
docker-compose -f docker-compose-dev.yml up -d

**Production mode**
docker-compose -f docker-compose-prod.yml up -d
```

The dev environment is ready for using with your IDE. The microservice attempts to communicate with Kafka using the local host. In production, it uses the archive Dockerfile to build an image of the project, so you wont need the IDE.

4. You could stop the project with any of these orders

```
**Developing mode**
docker-compose -f docker-compose-dev.yml down --rmi local -v

**Production mode**
docker-compose -f docker-compose-prod.yml down --rmi local -v
```

## Usage

First of all, please visit the REST API documentation at:

http://localhost:8080/swagger-ui/index.html

[Kafka-UI](https://docs.kafka-ui.provectus.io/) allow you to check your [Kafka](https://kafka.apache.org/) server using a practical dashboard, so visit this url:

http://localhost:8081

## Features

#### :white_check_mark: Include two docker-compose yaml files for easy change of environment

#### :white_check_mark: Hexagonal Architecture following Clean Architecture principle

## Maintainers

Just me, [Iván](https://github.com/Ivan-Montes) :sweat_smile:

## License

[GPLv3 license](https://choosealicense.com/licenses/gpl-3.0/)

---

[![Java](https://badgen.net/static/JavaSE/17/orange)](https://www.java.com/es/)
[![Maven](https://badgen.net/badge/icon/maven?icon=maven&label&color=red)](https://https://maven.apache.org/)
[![Spring](https://img.shields.io/badge/spring-blue?logo=Spring&logoColor=white)](https://spring.io)
[![GitHub](https://badgen.net/badge/icon/github?icon=github&label)](https://github.com)
[![Eclipse](https://badgen.net/badge/icon/eclipse?icon=eclipse&label)](https://https://eclipse.org/)
[![SonarQube](https://badgen.net/badge/icon/sonarqube?icon=sonarqube&label&color=purple)](https://www.sonarsource.com/products/sonarqube/downloads/)
[![Docker](https://badgen.net/badge/icon/docker?icon=docker&label)](https://www.docker.com/)
[![Kafka](https://badgen.net/static/Apache/Kafka/cyan)](https://kafka.apache.org/)
[![GPLv3 license](https://badgen.net/static/License/GPLv3/blue)](https://choosealicense.com/licenses/gpl-3.0/)