Basic RestAPI to practice my skills working with Spring/Kotlin/Gradle

Overview

Dining Review API

Dining Review API is a basic RestAPI roughly based on the requirements given in a Milestone project in the Building REST APIs with Java and Spring Course on CodeCademy. The overall goal is to practice my skills working with the Springframework, Kotlin and Gradle.

Although I finished the course using Java as the programming language and Maven as a build tool I decided to build this project using Kotlin and since Gradle offers the possibility to write the build file in Kotlin I went with Gradle instead of Maven for the build tool.

This documentation should therefore primarily be a reference for my self - sometimes it is helpful to write stuff down - as well as a way to gain a quick overview of the project for anyone who's interested.



API Endpoints

This part will give a brief overview of the API endpoints implemented so far. By default the API will be available under Port 8080 on localhost. So the endpoint url gets added to http://localhost:8080


Public Endpoints

These Endpoints are available to everyone without creating a user account and performing a login to perform GET requests.

GET `.../api/v1/`

Returns a list of json object containing information on all the restaurants known to the API.

GET `.../api/v1/{id}`

Returns a json object containing information on the restaurant with the given ID.

GET `.../api/v1/reviews/{id}`

Returns a list of json object containing information all the approved reviews regarding the restaurant with the given ID.

POST `.../api/v1/signup`

Expects a json object as request body representing a new user. Checks if the username is available, hashes the password and creates the user account.

POST `.../api/v1/login`


Endpoints for registered users

These Endpoints are only available to users, that have a user account and can submit a valid token



Login and Authentication

Under this section I will try to explain how the Authentication for Users and Admins is handled once it is implemented.


Logging in and getting a token

...


Verifying actions with the token

...

You might also like...
An library to help android developers working easly with activities and fragments (Kotlin version)
An library to help android developers working easly with activities and fragments (Kotlin version)

AFM An library to help android developer working easly with activities and fragments (Kotlin) Motivation Accelerate the process and abstract the logic

Sample app to demonstrate the integration code and working of Dyte SDK for android, using Kotlin.
Sample app to demonstrate the integration code and working of Dyte SDK for android, using Kotlin.

Dyte Kotlin Sample App An example app in kotlin using the Dyte Mobile SDK Explore the docs » View Demo · Report Bug · Request Feature Table of Content

An Android instance app for working with Google Map, Kotlin

map-instant-app An Android instance app Android technologies that I used: Name Description 1 Kotlin 2 Coroutine 3 Navigation 4 DataBinding 5 ViewBindi

An Android instance app for working with Google Map, Kotlin
An Android instance app for working with Google Map, Kotlin

map-instance-app A map instance app for seeing the current position of the user and saving that in the database and showing a list of saved locations.

Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock
Integration Testing Kotlin Multiplatform Kata for Kotlin Developers. The main goal is to practice integration testing using Ktor and Ktor Client Mock

This kata is a Kotlin multiplatform version of the kata KataTODOApiClientKotlin of Karumi. We are here to practice integration testing using HTTP stub

A small application for working with the Github API, made as a practical task. GeekBrains, course of study: Popular libraries: RxJava 2, Dagger 2, Moxie.
A small application for working with the Github API, made as a practical task. GeekBrains, course of study: Popular libraries: RxJava 2, Dagger 2, Moxie.

GeekBrains_Course_AndroidOnKotlin_HW_My_Movie Домашнее задание к занятию №2-6 Студента GeekBrains Веремеенко Дмитрия Факультет: Android-разработки Кур

Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.
Maxibon kata for Kotlin Developers. The main goal is to practice property based testing.

Kata Maxibon for Kotlin. We are here to practice property based testing. We are going to use KotlinTest to write our tests. We are going to practice p

KataContacts written in Kotlin. The main goal is to practice Clean Architecture Development

KataContacts written in Kotlin We are here to practice Clean Architecture Development. Clean Architecture is a way of structuring code. We are going t

TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer
TODO API Client Kata for Kotlin Developers. The main goal is to practice integration testing using MockWebServer

KataTODOApiClient for Kotlin We are here to practice integration testsing using HTTP stubbing. We are going to use MockWebServer to simulate a HTTP se

Owner
Jonas Kuhlo
Software Engeneering Student @AKAD-University
Jonas Kuhlo
Basic-Android-Project - A Basic Android Project with proper structure and all necessary dependencies

Basic-Android-Project A Basic Android Project with proper structure and all nece

Ameer Hamza 2 Mar 18, 2022
Spring-kotlin - Learning API Rest with Kotlin, Spring and PostgreSQL

Kotlin, Spring, PostgreSQL and Liquibase Database Migrations Learning Kotlin for

Andre L S Ferreira 2 Feb 14, 2022
Microservice-arch - Basic micro service architecture using spring boot

Readme 4 applications are created: discovery-service: every application register

Melvin Zottola 1 Jan 8, 2022
Reactive setup with Spring WebFlux , Kotlin, Postgres and Spring Data R2DBC

Reactive Spring with Kotlin and Pg Spring WebFlux with Netty instead of Spring Web with Tomcat Mono and Flux in all layers (controller, service, repo)

Bimal Raj Gyawali 7 Dec 9, 2022
This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

Maksim Kostromin 2 Nov 29, 2021
Spring-with-maven - Spring Boot App with Postgresql and maven

Spring Boot Api Aplikasi ini dibuat menggunakan bahasa kotlin dan untuk database

Aldi Aulia Rosyad 1 Jan 12, 2022
Android login spring - Android login against spring backend

Android Jetpack Compose login implementation with JWT tokens against our own bac

null 1 Feb 13, 2022
Michal Kubele 0 Jan 6, 2022
Ejemplo de API Rest Blog con Spring Boot + Kotlin + Gradle

Blog Ejemplo de API Rest Blog con Spring Boot 2.7.3 + Kotlin + Gradle + Java 17 El objetivo es que pueda servir como guía para el aprendizaje, lo más

Arturo López 6 Dec 18, 2022