Learning Scala Web Development
3.5 (21 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
101 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learning Scala Web Development to your Wishlist.

Add to Wishlist

Learning Scala Web Development

Leverage the power of Scala to build scalable and reliable web applications
3.5 (21 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
101 students enrolled
Created by Packt Publishing
Last updated 8/2016
Current price: $12 Original price: $75 Discount: 84% off
4 days left at this price!
30-Day Money-Back Guarantee
  • 2 hours on-demand video
  • 1 Supplemental Resource
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion

Training 5 or more people?

Get your team access to Udemy's top 2,000 courses anytime, anywhere.

Try Udemy for Business
What Will I Learn?
  • Learn the basics of the Actor Model and Akka framework
  • Discover the REST architectural style principles and constraints
  • Explore the Spray framework's fundamentals, design, and philosophy
  • Explore the core Spray framework modules such as spray-can, spray-routing, spray-json, spray-caching, and spray-client
  • Secure Spray REST(ful) web services and APIs using HTTP Basic Auth
  • Configure Spray applications with HTTPS support
  • Document Spray REST(ful) web services using Swagger
  • Explore REST(ful) web service contracts using Swagger UI
  • Add Spray caching support using server-side caches and ETags
  • Develop test suites for Spray REST(ful) web services
  • Call external REST(ful) web services using the Spray client
  • Use JSON representation of the resources on the server and on the client
View Curriculum
  • It assumes basic knowledge of the Scala language.
  • This easy-to-follow video course takes a systematic approach by starting with the big problem, dividing it into sub-problems, and then solving each one of them as we progress.

The Scala programming language has gained a lot of traction in the last couple of years because of its functional orientation and conciseness. The industry has a strong interest in using Scala in modern production systems, and as such, the Spray framework and Akka toolkit became a natural choice for back-end Scala developers building highly-scalable, reliable, reactive REST(ful) web services and APIs.

This video course will be an exciting journey into the universe of the web development using the Scala programming language and frameworks. It is a starting point from which you'll learn the basics of building REST(ful) web services and APIs using the non-blocking and asynchronous programming models that lie in the heart of the Spray framework. You’ll start off by learning about the REST architecture. After that, you will switch gears to the Akka toolkit and Spray framework, building the sample book catalog application along the way.

Once you've learned about the REST architectural style and Actor Model, the foundations that the Spray framework is built upon, you’ll shape out your own REST(ful) web services by providing simple route definitions. Further on, we'll delve into authentication, authorization, secure transport, documentation, test cases, and caching support. Finally, you will learn how to develop the Spray client API.

About The Author

Andriy Redko is a seasoned software developer and blogger, and is very
passionate about technology and software development in general.

Who is the target audience?
  • This course is for web developers who are looking to create reliable and powerful web applications with Scala.
Compare to Other Scala Courses
Curriculum For This Course
23 Lectures
Getting Started
3 Lectures 16:37

This video provides an overview of the entire course.

Preview 03:42

In this video, we will take a look at the REST architecture, design principles, and constraints. We are going to discuss how REST's emphasis on scalability, generality of interfaces, independent deployment, and presence of intermediary components addresses the challenges of building modern distributed systems.

The REST Architecture

In this video, we are going to take a look at the state of REST(ful) web service development on the JVM platform to understand what options are available at the moment.

REST(ful) Web Services on the JVM Platform
Introducing Akka and Actor Model
3 Lectures 18:01

In this video, we are going to discuss the challenges of concurrent and parallel programming, which is heavily based on multithreading and mutable shared state. We will try to look around and find out whether there are other options available to overcome these challenges.

Preview 06:04

Traditional concurrent and parallel programming using thread pools and synchronization is hard to implement correctly. Understand the fundamentals and benefits of the Actor model and message passing concurrency.

Introduction to the Actor Model

Look for available Actor model implementations on the JVM platform. Get familiarized with the Akka framework (or toolkit), one of the popular implementations of the Actor model written completely in Scala.

The Akka Framework – Actor Model Implementation in Scala
Building REST(ful) Web Services with Spray
5 Lectures 28:08

Spray is very feature-rich framework that could be exploited in a couple of different ways. Our goal is to understand the Spray philosophy, foundations, and design principles along with versioning policy.

Preview 07:03

Learn the traditional way of handling HTTP requests in Spray using Scala pattern matching and understand its weak points. Discover the alternative high-level abstractions in a form of routes and directives.

Spray Routing

Defining REST(ful) web service endpoints is really very easy using Spray Routing. However, it is equally important to support right data representation and be ready to dial with failure conditions.

More Spray Routing

In the modern web architecture, HTTP servers and clients play a key role in exposing and consuming REST(ful) Web services. Spray Can fills this niche by providing high-performance HTTP/1.1 servers and client implementations.

Spray Can

It is possible to use different programming languages and frameworks to access REST(ful) Web services and APIs but it requires at least some basic knowledge. From the other side, browsers and command line tools are available everywhere.

Consuming REST(ful) Web APIs from Browser or Command-line
Securing REST(ful) Web Services with Spray
3 Lectures 14:32

Unfortunately, security flaws leading to unauthorized access to massive volumes of private and confidential data are not as rare as we would like them to be. That is why these days built-in security mechanisms are first-class features of the modern REST(ful) Web services and APIs.

Preview 05:58

Authentication helps a lot with answering the question about who is accessing the system. However, in most cases, this is not enough as the next challenge to solve is what the authenticated user is allowed to do?


Inherently, the HTTP protocol is text-based and does not prevent data interception or tampering. Secure HTTP (HTTPS) is based on transport level security (TLS) and uses encryption to protect the transmitted data.

Configuring HTTPS Support
Documenting REST(ful) Web Services with Swagger
3 Lectures 16:43

A well-written web service or API that no one knows how to use is not worth much. Proper documentation is an integral part of any REST(ful) web service.

Preview 05:11

Swagger does not officially support the Spray framework yet, but there is a community project that provides all the required integrations.

Documenting Spray REST(ful) Web Services with Swagger

In most cases, the Swagger API exposes REST(ful) web services and APIs’ documentation using JSON or XML formats. This is great but not very comfortable for a human to work with.

Exploring REST(ful) Web Services in Swagger UI
Testing REST(ful) Web Services with Spray TestKit
2 Lectures 11:54

Delivering high-quality software (including web services and APIs) should be a primary goal of any software developer. Test-driven development practices aim to raise the bar of the quality by writing the test suites along with the main code.

Preview 05:35

Spray TestKit provides a nice DSL for testing web services and APIs built on top of Spray Routing. But Spray TestKit cannot be used alone and requires ScalaTest or Specs2 libraries.

Unit Testing Spray REST(ful) Web Services
Caching in the World of REST(ful) Web Services
2 Lectures 11:54

Complex computations and accessing external systems (such as relational data stores, for example) could be costly and time-consuming. Caching is one of the most effective techniques to mitigate this cost.

Preview 05:55

Implementing effective caching algorithms from scratch could take a lot of time and effort. Luckily, there are quite a few proven strategies to deal with caching that the Spray framework provides out of the box.

Caching in Spray
Calling External REST(ful) Web Services from Within Spray Web Services
2 Lectures 12:49

Most REST(ful) web services and APIs do not exist in isolation but have to call other external REST(ful) web services and APIs.

Preview 06:21

Integrations with external systems (including web services) introduce some complications into the testability aspects of applications. Not only could it have side effects, but also calling external systems within the test case introduces a high level of instability.

External REST(ful) Web Services and Unit Testing
About the Instructor
Packt Publishing
3.9 Average rating
8,274 Reviews
59,187 Students
687 Courses
Tech Knowledge in Motion

Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.

With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.

From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.

Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.