Mastering API Design at Scale · Roberto Polli

Mastering API Design at Scale

Resilient and well-documented APIs that are easy to integrate
Roberto Polli

Who am I?

Roberto Polli @ioggstream

Solutions Architect @ par-tec.it

Python enthusiast, IETF HTTP & HTTPAPI workgroup

5 years in the Italian Government's Digital Transformation Team

Red Hat, MongoDB | MySQL Certified

Slide Title

  • Bullet point one
  • Bullet point two
  • Bullet point three

AGENDA

  • Intro — environment setup & teaser
  • Contract-First API Design
  • Schema & Semantics
  • Service Management, Caching and Throttling

Contract-First

API Design

OpenAPI, JSON Schema, Connexion

Tutorial Setup

The tutorial is based on Jupyter notebooks.

Code
https://github.com/ioggstream/python-course/

Instructions
https://github.com/ioggstream/python-course/blob/main/connexion-101/README.md

Two-Column Layout

Left column

  • Point one
  • Point two
  • Point three

Right column

  • Another point
  • And another
  • More content here

Contract-First: OpenAPI Example

openapi: "3.0.0"
info:
  title: My API
  version: "1.0"
paths:
  /items/{item_id}:
    get:
      summary: Get an item
      parameters:
        - name: item_id
          in: path
          required: true
          schema:
            type: integer
      responses:
        "200":
          description: Success

Longtime Friends

Left column

 
 

Right column

  • Software & Infrastructure system integrator
  • Active in the open source scene for 20+ years
  • A team of 200+ employees with 200+ professional certifications

Title Here

Subtitle or tagline

Thank

You!

roberto.polli@par-tec.it

Global footer — logo appears on every slide via CSS background

═══════════════════════════════════════════════════════════════ COVER SLIDE ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ CONTENT SLIDE — with left shapes + right content ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ CONTENT SLIDE — three stacked yellow hexagons + right content Override hex colour: style="--hex-color: #C9B135" ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ AGENDA / BULLET LIST SLIDE ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ SECTION BREAK SLIDE Usage: change --shape-color on the section element, and set a subtitle below the h1 ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ CONTENT SLIDE — plain (no left shapes) ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ TWO-COLUMN SLIDE ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ CODE SLIDE ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ SLIDE WITH IMAGE (logos, diagrams, etc.) ═══════════════════════════════════════════════════════════════

Replace with your own logos/images

═══════════════════════════════════════════════════════════════ CIRCLES SLIDE — geometric half-moon decorations Yellow crescent left, blue crescent right, content centred. To flip a crescent add rotate(180deg) to its transform. ═══════════════════════════════════════════════════════════════

═══════════════════════════════════════════════════════════════ CLOSING / THANK YOU SLIDE ═══════════════════════════════════════════════════════════════