Are you intrigued by the possibilities that machine-interpretable semantics open up? Would you now like to know which technologies will enable you to describe APIs semantically? Read on for more information.

In our last article, we introduced you to the things you can potentially do when machines are able to reason about the wording of APIs. To do this, APIs have to be semantically annotated.

Don’t forget that it’s possible to add semantics to your existing APIs and web pages, so instead of starting everything from scratch, all you need do is add to what you already have.

You will need two things: semantic vocabulary (or ontology) and the technology to annotate documents sent by your APIs. …

It’s certainly true that if machines can interpret words like we humans do, they become capable of doing lots of smart tasks, some of which can save us precious time as organizations, developers and users. Importantly, this ability also helps to reduce client-server coupling. Read on to find out more.

The term “semantics” refers to the meaning of words. More specifically, it is a branch of linguistics that studies “what is signified”, i.e.: the things we talk about and what we mean when we do. Memorize this word because it appears throughout this article.

Semantics are already a part of daily life

Whether you are a developer or an internet user, you use semantics all the time. If you are searching for a place or musician on Google, for example, the “knowledge graph card” on the right-hand side (ringed in blue in the screenshot below) uses this technology. …

Which message format should you use to develop hypermedia APIs? HAL? JSON-LD? Mason? Or something else? Which framework is best suited for you, and which JavaScript client? In this article, we compare the various technologies that enable us to build hypermedia APIs.

Just like for APIs that doesn’t provide hypermedia controls, there are three types of tools that can be particularly useful for this kind of work: (i) message formats (e.g.: JSON), (ii) frameworks, and (iii) JavaScript REST clients.

Unlike for RESTful APIs, there are no standards for hypermedia APIs, which is why there aren’t many frameworks and JavaScript clients.

That said, let’s take a look at the solutions available to us in each category. …

Imagine for a moment that all the links for websites you use have disappeared. In their place, you find a user guide on how to create URLs yourself as well as on how to create an HTTP request to comment on a Facebook photo. Let’s say that, for convenience’s sake, you use code to automate the creation of links. (It is 2019 after all!) And now every time the website is changed, you have to modify your code. Sounds absurd, doesn’t it? Nevertheless, this is the daily reality for developers using APIs. …

Photo by Marvin Meyer on Unsplash
Photo by Marvin Meyer on Unsplash
Photo by Marvin Meyer on Unsplash

We were interested in the exciting issues faced by IS departments on a daily basis and wanted to know which were the most important to address.

The questionnaire, dataset and a link to the raw data are provided at the end of the article.

What are the three most significant problems?

In our study, we asked the participants to choose the three most significant problems they face from the following list:

  1. Keeping abreast of how the IS works
  2. Identifying where to position a new feature
  3. Designing a new feature and analyzing its effects
  4. Developing a new feature in a reasonable amount of time
  5. Identifying and describing operating…

The year 2014 has seen the birth of the Reactive Manifesto which emphasizes the development of responsive, resilient, elastic and message driven systems. Since then, more than 22.000 people signed it and some major librairies were born to help developers build such reactive systems.

In the Java world first came RxJava and then Reactor, developed by Pivotal, the company behind Spring Framework. This is how Spring Framework 5.0.0 brought a whole new Reactive Stack beside the famous Servlet Stack, in Sept. 2017, named WebFlux.

“Spring WebFlux is a non-blocking web framework built from the ground up to take advantage of multi-core, next-generation processors and handle massive numbers of concurrent connections.” …

Image for post
Image for post
Photo by John Salzarulo on Unsplash

Reactor is a Java library for creating reactive non-blocking applications on the JVM based on the Reactive Streams Specification.

This article is the forth of a series which goal is to guide you through the process of creating, manipulating and managing the execution of the Reactive Streams that offer Reactor through the Mono and Flux classes.

In the first three articles we covered how to create Mono and Flux, how to apply transformations to the data they hold and how they behave.

In this forth article, we will see how to take control over the way Flux and Mono are executed, either sequentially or in parallel. And also how to configure on which thread pool to run all the operations, or only one operation. …

Image for post
Image for post
Photo by John Salzarulo on Unsplash

Reactor is a Java library for creating reactive non-blocking applications on the JVM based on the Reactive Streams Specification.

This article is the third of a series which goal is to guide you through the process of creating, manipulating and managing the execution of the Reactive Streams that offer Reactor through the Mono and Flux classes.

In the first two articles we covered how to create Mono and Flux, and how to apply transformations to the data they hold.

In this third article, I’ll show you how these two classes behave.

Laziness

By definition, every stream is lazy. This means that nothing is executed until you consume the stream. With Mono and Flux, the method to consume them is subscribe(...)

Image for post
Image for post
Photo by John Salzarulo on Unsplash

Reactor is a Java library for creating reactive non-blocking applications on the JVM based on the Reactive Streams Specification.

This article is the second of a series which goal is to guide you through the process of creating, manipulating and managing the execution of the Reactive Streams that offer Reactor through the Mono and Flux classes.

In this second article, I’ll show you how values in Mono and Flux can be modified and transformed. We’ll do this through examples.

Applying mathematical operations on your Flux or Mono

Let’s say you want to compute the square of every integer value in the interval 1 to 100. To do this with a Flux, you first have to create a Flux containing all the integer values from 1 to 100, doing Flux.range(1, …

Image for post
Image for post
Photo by John Salzarulo on Unsplash

Reactor is a Java library for creating reactive non-blocking applications on the JVM based on the Reactive Streams Specification.

Working with this library can be difficult at first. This series of articles will guide you through the process of creating, manipulating and managing the execution of the Reactive Streams that offer Reactor through the Mono and Flux classes.

About

Antoine Cheron

Web Engineering Ph.D. student @INRIA and @FABERNOVEL

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store