Designing and implementing a RESTful API layer with Spring Boot is important but there is another important point with this approach which is the documentation of this API layer. As there is no contract is present for RESTful services like there is for SOAP services, documentation of RESTful services becomes crucial from development perspective.

This RESTful API documentation should be structured for all parties involved in the implementation. It should be easy to be read and understood and it should be informative enough to make APIs clear for everyone.

Throughout this article, I will cover Swagger 2 implementation with Spring…

Servers should tell clients what can be the next step or avoid them to define static end-point rules on client side in RESTful API world. Spring HATEOAS is doing just the exact case to serve clients what the next steps are during run-time by with providing hypermedia driven RESTful APIs.


What is Spring HATEOAS?

Before giving a code example, let’s examine what is Spring HATEOAS and what are the benefits using it.

HATEOAS stands for Hypermedia as the Engine of Application State and it is giving an overview to the client about the next steps with the URI of the referenced objects dynamically and…

GitHub has a very useful, simple, and efficient tool to manage and work with your containers. This tool is called GitHub Container Registry (GHCR). Containers can be easily published/pushed & consumed/pulled within your private repository or within your organization repository via using the GHCR tool.

GHCR, Managing Your Containers in an Efficient & A Simple Way

I will try to mention how to use GHCR in a quick & simple way for your essential needs when you need to work with Docker container images. You can use these GHCR containers in your private repository or in your organization's repository. …

Mapping from entities to DTOs and vice versa is always required within multi-layered applications for transferring data between services/processes. How these mappings is implemented is also another important topic from development perspective as it can have impacts on performance or even on code quality & code readability.

MapStruct is a powerful processor which can map between beans and which can create concrete implementation methods during compile time. I will mention about using MapStruct for mapping MongoDB entities to DTOs and vice versa within Quarkus in this article.

Also, I am sharing the all code base from my GitHub account.

Using MapStruct for MongoDB Entities in Quarkus

A Brief Intro to MapStruct



On one side we have supersonic, subatomic Java framework, Quarkus and on the other side cross-platform document oriented NoSql database, MongoDB. So, it must be fun to integrate these two platforms with each other and executes our application in a supersonic way.

Quarkus & MongoDB

What is Quarkus?

Quarkus is being developed by Red Hat in Java and it is a full-stack, Kubernetes-native Java application framework.

The best two functionalities that I like about Quarkus are;

  • It is a combination of imperative coding & reactive coding,pls read the following link how it combines both;
  • It has really fast boot time comparing with other frameworks

I will…


JShell is used to write your java declarations, evaluations, expressions and interactively evaluate these and see the result immediately and remember your statements for future usage in the existing running instance. This shell for Java which is a RPEL (stands for Read Evaluate Print Loop) tool was introduced with JDK 9.

RPEL with JShell

How To Open JShell

I often use this handy shell to make experiments with my code or to try new things. Below screenshot is the welcome screen for jshell and you need JDK 9 or above in order to execute it. Just go to bin folder and type jshell and here you enter the world or REPL shell screen.

I have three magical keywords to design, implement, test and maintain all levels of software architecture from different perspectives. These words are “simple”, “reusable” and “generic”. I use these words not only in professional life and also I try to use them in my daily life. I believe these three magical words are keys to success and one should use all three words in order to succeed !!!

Three Magical Keywords

There are four main or famous ways or methodologies explaining how to make an efficient & successful software development implementation.

  • Agile Development Methodology → developing in iterations
  • Waterfall Development Methodology → developing…

Leadership Description By Steve Jobs

I am generally hearing from juniors or fresh starters that they want to be a manager as their upcoming professional goal. And, generally management sounds better than leading to most of us. Even titles in professional life are shaped according to this belief, “manager” title is generally top of “leader” title in most company organization charts.

Evren Tan

A Humble Human | A Software Craftsman | A GitKraken Ambassador | A TOGAF 9 Certified Architect | An Integration & Full-Stack Enthusiast | A Chess Lover

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store