30.09.2020 / By 

Tapir vs Endpoints4s - The battle of the endpoints definition!

In this article, we compare Tapir with endpoints4s. We highlight the differences by providing examples and explanations for the most common features you would like to have in your REST API. Both libraries only require you to describe the communication protocol in Scala. Once the communication protocol is written, you need to wire it with a specific HTTP Server (such as Akka HTTP) and/or body parsing (e.g. Circe). In the end, the library produces clients, documentation, and servers for you with implementations of your choices.

07.07.2020 / By 

Rest Assured API Testing Tutorial. How To Use Rest Assured With Java And Scala.

In the world of testing - automation can be a real game-changer. That’s why it’s on everyone’s tongues, especially "automated tests" in the context of GUI tests written in python/java with SeleniumWebDriver. Or possibly with the increasingly popular Cypress.io. However, GUI tests sit right at the top of the basic pyramid when it comes to testing.

11.12.2019 / By 

How to set up Bazel build tool for your Scala project

You have probably encountered this problem while working with SBT and bigger projects. I’m talking about compilation times and test execution times, in other words, having to wait instead of working. Imagine working with a build tool that rebuilds only what is necessary, using a distributed cache, so if module A is built by one […]

26.11.2019 / By 

How to write a command-line application with ZIO

There are plenty of frameworks you can base your application on in Scala, and every one offers a different flavor of the language with its own set of patterns and solutions. In this blog post, you will learn how to structure a command-line application using ZIO.

07.08.2019 / By 

Making ZIO, Akka and Slick play together nicely

All of us are eager to start writing real-world applications using ZIO (Scala library). But ZIO is still quite new, and its ecosystem is still incomplete. So while we wait for ZIO-HTTP and ZIO-JDBC (or whatever else comes in the future) to happen, we will have to end up integrating ZIO with other frameworks that can communicate with the outside world. In this article, I want to explore what this kind of integration might look like for two of the most popular libraries - Slick and Akka HTTP.

14.02.2019 / By 

Using Akka HTTP with Sangria as GraphQL backend

Many people think that GraphQL is ‘something’ related to Graph Databases, in my opinion they’re wrong. GraphQL is to Graph DB like Javascript to Java. Are based on similar concepts, but are used for completely different things.In short: GraphQL is a query language for APIs, optimized for performance, designed and open-sourced by Facebook. In GraphQL you can ask server for connected data and you’ll get in response only what you’ve asked for. Not more. Great! Isn't it?

14.02.2019 / By 

User Authentication with Keycloak - Part 2: Akka HTTP backend

Welcome to our second article about Keycloak Server! Previously, we’ve learnt to setup the server and make use of it in a webapp -this time, we’re going to create a matching back-end API and also learn a little bit about the OAuth2/OpenID magic that powers our entire authn/authz mechanism. So let’s get started!

14.02.2019 / By 

User Authentication with Keycloak - Part 1: React front-end

Providing authentication and authorization for the non-public-facing components of your application is an important part of many systems. But all major Scala frameworks come ready-equipped with some native tools for doing that, with complexity and comprehensiveness ranging from basic HTTP schemes with Akka HTTP’s SecurityDirectives to numerous Play plugins such as Deadbolt 2 or Silhouette.But it can be difficult to get what you need out of some of these. And if you have to relearn them for every new framework - it ain’t nice either.Learn how to overcome the additional overhead when moving to an unfamiliar tech stack!

24.09.2018 / By 

Storing files on Amazon S3 with Alpakka AWS S3 connector

S3 (Amazon’s Simple Storage Service) is a popular, widely used object storage service. Uploading a file and storing it on S3 in Akka Http traditionally involves temporarily storing a file before sending it to S3 service. This process can be simplified by using Alpakka AWS S3 Connector. In this post we will take a look at those two different […]

16.05.2018 / By 

Typelevel ecosystem: a high-level overview

In this post, we’ll look at what the Typelevel ecosystem looks like in 2018, and how its various libraries interact with each other. In particular, we’ll focus on how we can compose some of these libraries to build a complete application, in a purely functional fashion. This will not be a tutorial for Cats (there […]