Skip to content

Commit

Permalink
feat: Add TLDR at the beginning of every articles
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandre-touret committed Dec 15, 2023
1 parent e65bfb8 commit d35a933
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 1 deletion.
7 changes: 7 additions & 0 deletions docs/01-without_versioning.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

At this point we have our first customer : **John Doe** who uses our API with the current specification.

## TL;DR: What will you learn in this chapter?

This chapter covers the following topics:

1. How to start the platform
2. Adding a non-breaking change and see how it doesn't impact the API Contract

## Prerequisites

You must start three new shells and run [rest-book](../rest-book), [rest-number](../rest-number) and [the gateway](../gateway) modules.
Expand Down
10 changes: 10 additions & 0 deletions docs/02-first_version.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# Your first version

## TL;DR: What will you learn in this chapter?

This chapter covers the following topics:

1. Pinpoint the impacts of the versioning in the OPENAPI Description file
2. Implement a URL Based versioning
3. Implement a header based versioning
4. Deploy and configure a default version for your API

## Prerequisites
We will define in this chapter our first version in the URI and in a header mixing in the gateway & the apps.

> **Warning**
Expand Down
7 changes: 7 additions & 0 deletions docs/03-second_version.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# And now something completely different : a second version

## TL;DR: What are you going to learn in this chapter?

This chapter covers the following topics:

1. Creating a new version (it will be a copy of the rest-book module)
2. Add a new breaking change functionality to the last version

## A new functionality for a new customer

We have now a new customer.
Expand Down
7 changes: 7 additions & 0 deletions docs/04-scm.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Configuration management

## TL;DR: What are you going to learn in this chapter?

This chapter covers the following topics:

1. Pinpoint Configuration management issues due to API Versioning
2. Exposing the two versions on the API Gateway

## Preamble
You can configure your services either during deployment using CI tooling, such as [Gitlab Environments](https://docs.gitlab.com/ee/ci/environments/), or any other [Infra As Code](https://en.wikipedia.org/wiki/Infrastructure_as_code) tool ([Istio](https://istio.io/), [Ansible](https://www.ansible.com/),...) or using a configuration server.
For this workshop, all the configuration items will be provided by [Spring Cloud Config](https://docs.spring.io/spring-cloud-config/docs/current/reference/html/#_quick_start).
Expand Down
8 changes: 7 additions & 1 deletion docs/05-conflicts.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
# Dealing with breaking changes

## TL;DR: What are you going to learn in this chapter?

This chapter covers the following topics:

1. Dig into Backward compatibility hassle and implement a solution to make both of the two versions work

## Preamble

Now it is time to move on.
Expand Down Expand Up @@ -370,7 +376,7 @@ http :8083/v2/books

```

## Striving with changes for existing customers in the v1
## Striving for changes for existing customers in the v1

Now, the database is not usable as is for the V1.

Expand Down
7 changes: 7 additions & 0 deletions docs/06-authorization.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Last but not least : what about security and authorization impacts?

## TL;DR: What are you going to learn in this chapter?

This chapter covers the following topics:

1. Pinpointing the impacts on authorization
2. Enforcing API versions restrictions with OAUTHv2 scopes

While versioning secured APIs, there is usually one impact we miss at the beginning: security, especially authorization.
If you apply authorization policies on your whole platform using for instance, [ABAC](https://en.wikipedia.org/wiki/Attribute-based_access_control) or [RBAC](https://en.wikipedia.org/wiki/Role-based_access_control) approaches, you must take care about it.
They could indeed evolve over your versions.
Expand Down

0 comments on commit d35a933

Please sign in to comment.