/mobileWepWs

A Restfull webservice built in spring boot following Sergey Kargopolov Udemy course.

Primary LanguageJava

MobileWep Web Service

This project's base was created following Sergey udemy's course about Restful WEB Services.

I have added several features on top of that since them in order to improve my coding skills.

Tools

This project is developed using the following technologies:

  • Java;
  • Spring Boot;
  • Spring Data for DB access;
  • Spring Security for secure endpoints.
  • MySQL as database;
  • JUnit4, Mockito and MockMVC for tests;
  • Swagger for API Documentation;
  • Redis for cache
  • Docker for Project container building

Requirements / Dependencies

  • Java 8
  • Maven to manage the project's build, reporting and documentation from a central piece of information;
  • Spring boot for project setup and run;
  • Lombok To help with some Java boilerplates such as: Getter, Setter, Constructor, etc.. Also automate the creation of a Builder;
  • Model Mapper to make object mapping easy, by automatically determining how one object model maps to another, based on conventions;
  • JUnit4 for unit tests;
  • Mockito for general tests;
  • MockMVC from Spring for Rest Tests;
  • Swagger for really useful and simple API documentation;
  • Docker To build container and reduce concerns with infrastructure.

Running the application locally

With Docker

  • Start Docker in your local machine after cloning the project.
  • Run the command below on the root of the project:
$ docker-compose up --build

Please make sure that MySql default port 3306 is not being used.

Swagger

  • Swagger is already configured in this project in SwaggerConfig.java.
  • The API can be seen at http://localhost:8080/swagger-ui.html.
  • You can also try the entire REST API directly from the Swagger interface!

Postman Documentation

Alternatively to swagger, I have prepared a postman documentation, in which you will be able to check in details each endpoint and possible Requests and responses.

Please access it by link below:

https://www.getpostman.com/collections/81c694fa549846e98dca

Contributors


Support

  • If you have any query or doubt, please, feel free to contact me by e-mail.