Writing interoperable REST APIs with OpenAPI 3 and connexion

A beginners introduction to API-first approach in python

Roberto Polli

APIs HTTP

## Abstract

This training will introduce beginners to REST API and
the OpenAPI specification, and shows how to use
a contract-first approach to easily write python apis.

After a theoretical introduction explaining REST and RPC, and
the benefit of OpenAPI 3, we will write different APIs,
implementing features like:

- basic and jwt authentication;
- throttling headers;
- storing files and related metadata;
- request/response validation;
- service management;

All the work will be done via the connexion framework.

## Agenda

- REST vs RPC APIs
- Contract first and Code-First
- OpenAPI v3: describing APIs metadata and technical specs
- Connexion, an OpenAPI framework for python
- My first REST API with connexion
- Adding features: basic and JWT authentication
- Add throttling and service management;
- Request/Response validation
- A file-store REST API

## Strategy

Theoretical intro is based on slides.
I'll provide digitalocean vms, docker images and ansible playbook to help students
to setup their environment.

Type: Training (180 mins); Python level: Beginner; Domain level: Beginner

Roberto Polli

Italian Digital Transformation Team

Roberto joined in the [Italian Digital Transformation Team](https://teamdigitale.governo.it/en/49-content.htm) - to work on the new interoperability framework which introduces an API Ecosystem.

He's a Red Hat Certified Engineer and MySQL/MongoDB certified dba, but loves maintaining free software.

A life ago he took a Math degree, and he's really proud of it.