Packages

  • package root
    Definition Classes
    root
  • package lol

    This is the documentation for the lolhttp library.

    This is the documentation for the lolhttp library.

    • http is the core module providing HTTP Client and Server.
    • json is an optional module providing integration with the circe JSON library.
    • html is an optional module providing HTML templating.
    Definition Classes
    root
  • package html

    HTML templating.

    HTML templating.

    val items: List[Item] = ???
    val content: Html = tmpl"""
      <­h1>Items<­/h1>
      @if(items.isEmpty) {
        <­em>No results<­/em>
      }
      else {
        <­ul>
           @items.map { item =>
             <li>@item.name</li>
           }
    
      }
    """

    Html values can also be easily created from the html interpolation. Conversion from Scala values is done via the ToHtml type class.

    val content: Html = html"""Hello $${name}!"""

    They will be encoded as lol.http.Content thanks to Html.encoder.

  • package http

    The core module for lolhttp.

    The core module for lolhttp.

    Server.listen(8888) { request =>
      Ok("Hello world!")
    }
    
    Client.run(Get("http://localhost:8888/")) { response =>
      response.readAs[String]
    }

    Provides an HTTP Client and an HTTP Server. Both client and server are Service functions. A service function takes a Request and eventually returns a Response. Requests and responses are shared between the client and the server API, making it easy to assemble them. Both are seen as a set of HTTP headers, and a Content body.

    The content fs2.Stream is based on fs2 and can be lazily consumed if needed. It can be encoded and decoded using the appropriate ContentEncoder and ContentDecoder.

    SSL is supported on both sides.

  • package json

    Provides integration with the circe JSON library.

    Provides integration with the circe JSON library.

    Server.listen(8888) { request =>
      request.readAs(json[MyRequestData]).flatMap { data =>
        Ok(MyResponseData(data).asJson)
      }
    }

    Nothing really special here. Just a bunch of useful lol.http.ContentEncoder and lol.http.ContentDecoder for io.circe.Json values.

    This module is optional and you can easily use another scala JSON library by providing the required encoder/decoder (or treating JSON as string).

p

lol

package lol

This is the documentation for the lolhttp library.

  • http is the core module providing HTTP Client and Server.
  • json is an optional module providing integration with the circe JSON library.
  • html is an optional module providing HTML templating.
Source
lol.scala
Linear Supertypes

Inherited from AnyRef

Inherited from Any

Ungrouped