Akka/Pekko HTTP with Scala
Build microservices in minutes. Write reactive, stream-based REST APIs, backends and microservices with Akka HTTP or Pekko HTTP.
REST easy.
Distributed systems are a fact of life now. However, distributed monoliths can grind your system and your dev speed to a halt. Although they're not perfect, microservices can solve a lot of your problems. Akka HTTP can help you spin up any HTTP or REST service, big or small, in minutes. It's Akka Streams-based, fault-tolerant, reactive, and powers the brilliant Play Framework and many of the services we take for granted.
This course will teach you how to write HTTP and REST APIs the right way with this powerful toolkit.
After this course, you'll be able to:
- create any HTTP service of any complexity
- write REST APIs that can send and receive anything
- handle JSON with both high-control and hands-off, when you choose
- use 50+ directives and combinations for arbitrary server logic
- support JWT authorization in your projects
- secure your server with HTTPS
- test routes and server logic
- use WebSockets for back-and-forth communication
- support arbitrary file uploads to your server
- use 3 different client APIs to interact with any other REST service
Plus some extra perks:
- You'll have access to the entire code I write on camera (all 2244 lines of it)
- You'll be invited to our private Slack room where I'll share latest updates, discounts, talks, conferences, and recruitment opportunities
- (soon) You'll have access to the takeaway slides
- (soon) You'll be able to download the videos for your offline view
Skills you'll get:
-
Create HTTP (micro) services in high-control mode
- process any HTTP requests
- extract HTTP headers & payloads
- send responses, attach headers and payloads
- marshal and unmarshal JSON
- handle URL query parameters
-
Create HTTP (micro) services with high-level Directives
- handle URL paths
- extract URL query parameters
- extract HTTP headers
- send back statuses and replies of any size and complexity
- differentiate HTTP methods
- create routes and routing logic
- create and extract JSON objects auto-magically
- upload files of any size
- create WebSockets
- incorporate JWT authorization
- handle HTTP rejections
- handle internal and remote exceptions
- save and reuse logic pieces in other servers
- combine ALL of the above in servers of any complexity
-
Interact with other HTTP servers and REST APIs as a client
- the high-control mode: the connection-level API
- the kinda-committed mode: the host-level API
- the hands-free mode: the request-level API
all with live runnable examples and practiced with exercises.
Course Overview
-
StartIntroduction to the High-Level API (15:45)
-
StartDirectives Breakdown - Part 1 (25:29)
-
StartDirectives Breakdown - Part 2 (20:19)
-
StartA High-Level Server Example (32:38)
-
StartThe High-Level Server - Exercise (26:35)
-
StartMarshalling JSON with Directives - Part 1 (20:15)
-
StartMarshalling JSON with Directives - Part 2 (21:48)
-
StartHandling HTTP Rejections (26:59)
-
StartHandling Exceptions (16:47)
-
StartTesting Routes with the Akka HTTP TestKit (33:12)
-
StartWebSockets (27:59)
-
StartUploading Files (22:54)
-
StartJSON Web Tokens (JWT) Authorization (34:39)
Get started now!
Your Instructor
I'm a software engineer and the founder of Rock the JVM. I started the Rock the JVM project out of love for Scala and the technologies it powers - they are all amazing tools and I want to share as much of my experience with them as I can.
As of February 2024, I've taught Java, Scala, Kotlin and related tech (e.g. Cats, ZIO, Spark) to 100000+ students at various levels and I've held live training sessions for some of the best companies in the industry, including Adobe and Apple. I've also taught university students who now work at Google and Facebook (among others), I've held Hour of Code for 7-year-olds and I've taught more than 35000 kids to code.
I have a Master's Degree in Computer Science and I wrote my Bachelor and Master theses on Quantum Computation. Before starting to learn programming, I won medals at international Physics competitions.