Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Playing with tapirs Scala Vienna UserGroup
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Michele Vigilante
November 21, 2019
Programming
20
0
Share
Playing with tapirs Scala Vienna UserGroup
A presentation about the tapir library from softwaremill
Michele Vigilante
November 21, 2019
Other Decks in Programming
See All in Programming
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
920
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
3.4k
New "Type" system on PicoRuby
pocke
1
440
AIエージェントの隔離技術の徹底比較
kawayu
0
460
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
2k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
460
並列実装の現場、2ヶ月間実務でAIを使い倒したAIもPCも私も限界が近い
ming_ayami
0
100
キャリア迷子上等 ─ "ない道"は自分で作ればいい
16bitidol
2
240
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
190
ふつうのFeature Flag実践入門
irof
7
3.5k
GitHub Copilot CLIのいいところ
htkym
2
1.3k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Featured
See All Featured
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
600
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
380
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.3k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
130
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
590
Paper Plane (Part 1)
katiecoart
PRO
0
8.4k
How to make the Groovebox
asonas
2
2.2k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
My Coaching Mixtape
mlcsv
0
140
30 Presentation Tips
portentint
PRO
1
310
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
600
Transcript
tAPIr Playing with Tapirs Michele Vigilante @_zZKato: Twitter
Agenda • Conventional API definitions • What is tapir •
Why tapir • Inputs and Outputs • Capabilities • Live Demo - Customer Application
Conventional Endpoint definitions • Routes file ◦ No type safety
◦ Difficult to maintain • Spring annotations ◦ limited type safety ◦ **magic**
What is Tapir? • tapir -> Typed API descRiptions •
created by Adam Warski from Softwaremill • define HTTP endpoints as Scala values • gain for free via interpretation ◦ [framework] Route ◦ OpenAPI documentation ◦ sttp API client
Supported frameworks • akka-http • finatra • http4s • playframework
(Soon™) • BYOI -> bring your own interpreter
Why tapir • Full type safety • No magic, just
simple code • framework agnostic • free server, client and docs • very “ergonomic”
Inputs and Outputs Endpoint[I, E, O, _] tapir Endpoint type
I Inputs E Error Outputs O Outputs
Capabilities • Custom Types (provided Codec) • Input/Output validation •
Authentication -> bearer token / basic / OAuth2 • Payload -> JSON / URL-encoded Forms / Multipart Forms etc. • Streaming
Live Demo
Q & A Thanks for your attention! • Links ◦
https://www.firstbird.com/en/ ◦ https://tapir-scala.readthedocs.io/en/latest/index.html ◦ https://github.com/softwaremill/tapir ◦ https://github.com/zZKato/tapir-live-demo-scala-usergroup