# README

[![Java CI](https://github.com/andifalk/spring-cloud-gateway-workshop/actions/workflows/maven.yml/badge.svg)](https://github.com/andifalk/spring-cloud-gateway-workshop/actions/workflows/maven.yml) [![CodeQL](https://github.com/andifalk/spring-cloud-gateway-workshop/actions/workflows/codeql.yml/badge.svg)](https://github.com/andifalk/spring-cloud-gateway-workshop/actions/workflows/codeql.yml)

## Microservices on the Edge with Spring Cloud Gateway (Hands-On Workshop)

A hands-on workshop to build an API-Gateway using the [Spring Cloud Gateway](https://spring.io/projects/spring-cloud-gateway).

### Table of Contents

* [Workshop Tutorial](#workshop-tutorial)
* [Introduction](introduction/introduction)
* [Hands-On Workshop](#hands-on-workshop)
  * [Intro Lab](#intro-lab)
  * [Hands-On Labs](#hands-on-labs)
* [Next Steps](#next-steps)
* [Feedback](#feedback)
* [License](#license)

### Workshop Tutorial

To follow the hands-on workshop please open the [workshop tutorial](https://andifalk.gitbook.io/spring-cloud-gateway-workshop/).

### Introduction

The sample application architecture you will build (and use) looks like this:

![Architecture](https://1449454654-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FrZ7ywP3DCB1zsC80f9kQ%2Fuploads%2Fgit-blob-df10a92f8f35f37ec4a5cdb4abe1569d6186565e%2Farchitecture.png?alt=media)

* [Prerequisites](introduction/prerequisites)
* [Requirements and Setup](introduction/setup)
* [Introduction to Spring Cloud Gateway](introduction/introduction)
* [Sample Application Architecture](introduction/architecture)
* [Provided Backend Microservices](introduction/microservices)

### Hands-On Workshop

#### Intro Lab

* [Reactive Streams with Spring Reactor in Action](intro-lab/reactive-playground)

#### Hands-On Labs

* [Lab 1: Routing - Configure & Monitor Gateway Routes](hands-on-labs/lab1)
* [Lab 2: Resilience - Retry, Circuit Breaking and Rate Limiting](hands-on-labs/lab2)
* [Lab 3: Security Part 1 - Authentication with JWT](hands-on-labs/lab3)
* [Lab 4: Security Part 2 - Secure Communication with TLS](hands-on-labs/lab4)

### Next Steps

* [Further Gateway Features](next-steps/next-steps)

### Feedback

Any feedback on this hands-on workshop is highly appreciated. Just email _andreas.falk(at)novatec-gmbh.de_ or contact me via Twitter (_@andifalk_).

### License

Apache 2.0 licensed
