ZIO-HTTP : Partie 1 – présentation et fonctionnalités de base

ZIO-HTTP est une nouvelle librairie qui permet de créer des application Web en Scala, et qui s’intègre naturellement avec la librairie ZIO, que nous présentions dans cet article.

Le but de ZIO-HTTP est de faciliter la création d’applications Web en suivant le paradigme de la programmation fonctionnelle pure. Pour les personnes qui utilisent la librairie ZIO, le code s’en trouve grandement simplifié par rapport ce que l’on obtient avec des librairies comme Play Framework, Akka Http ou même Http4s.

Place au code, voyons à quoi ressemble un exemple basique d’application HTTP écrite avec cette librairie. Il est possible de déclarer un serveur et une route HTTP de la manière suivante : 

object HelloWorld extends App {

  val app = Http.collect[Request] {
    case Method.GET -> Root / "hello" / name => Response.text(s"Hello $name!")
    // possibilité d’ajouter plus de routes à la suite
  }

  override def run(args: List[String])  =
    Server.start(8090, app).exitCode
}

Cet extrait de code permet déclarer une route qui répondra à l’URL « /hello », avec la méthode GET et avec un paramètre de path, par exemple « /hello/bob », puis de démarrer un serveur HTTP sur le port 8090.

On pourra donc appeler par exemple l’URL « http://localhost:8090/hello/bob » pour voir apparaître le message « Hello bob! ». Pour renvoyer une réponse au format JSON, il existe aussi une méthode « Response.jsonString ».

Enfin, l’équipe de ZIO-HTTP annonce des performances extrêmement prometteuses. 

Un benchmark est consultable ici.

L’équipe de développement a expliqué dans cet article le processus qu’ils ont suivi pour atteindre ce niveau de performance.

Si cette partie 1 vous a intéressés, je vous donne rendez vous pour la partie 2 dans laquelle nous parlerons d’injection de dépendances.

2 réactions sur “ ZIO-HTTP : Partie 1 – présentation et fonctionnalités de base ”

  1. Ping ZIO-HTTP : partie 2 – injection de dépendances – KZSLAB : Kaizen Solutions

  2. Ping ZIO-HTTP: Partie 3 – authentification et CORS – KZSLAB : Kaizen Solutions

Les commentaires sont clos.