blog.petitviolet.net

    akka-http (5 posts)

    icon
    Written by petitviolet

    Akka-HTTP - spray-jsonの使い方とAkka-HTTP

    2016-06-02QiitaScalaAkka-HTTP
    Akka-HTTPで公式にサポートされているJSONライブラリのspray-js
    Akka-HTTP で公式にサポートされている JSON ライブラリの[spray-json](https://github.com/spray/spray-json)の使い方。 [JSON Support — Akka Documentation](http://doc.akka.io/docs/akka/2.4.4/scala/http/common/json-support.html) Akka-HTTP と一緒に使いたいので、Marshaller/Unmarshaller として使用法も載せる。 tl;dr - クラスのフィールドに独自の型を使わない場合 or 独自の型に対応

    Akka-HTTP - DSLにおける暗黙の型変換

    2016-05-28QiitaScalaAkkaAkka-HTTP
    akka.http.scaladslパッケージをimportすることで使えるよう
    akka.http.scaladslパッケージを import することで使えるようになる DSL が、 裏側でどのように実装されているか気になったので調べた。 題材 akka-http において、単純なルーティングについて考えてみる。 scala val route = path("ping") { get { complete("pong") } } localhost:8080/pingに GET リクエストを送ると期待通りにpongと返ってくる。 $ curl localhost:8080/ping pong

    Akka-HTTPを型で縛る

    2016-05-27QiitaScalaAkkaAkka-HTTP
    httpリクエスト/レスポンスでやり取りするStringな値をアプリケーションが
    http リクエスト/レスポンスでやり取りする String な値をアプリケーションが期待する Scala の型に変換する方法について。 リクエストを型で縛る ユーザーからのリクエストをなるべくStringとして触らないようにする。 URL パラメータ 以下のルーティングを考える。 GET /message?id=&body=' URL パラメータのidとbodyをなるべくString以外で扱う。 まず、型を用意する。 scala sealed trait Content { val id: Long

    Akka-HTTP - カスタムヘッダーの取り扱い方

    2016-05-19QiitaScalaAkkaAkka-HTTP
    標準で用意されていない独自のヘッダーを定義して使いたいケース。大雑把に、文字列と
    標準で用意されていない独自のヘッダーを定義して使いたいケース。 大雑把に、文字列として扱う場合と型で扱う場合に分ける 文字列で扱う headerValueByNameで良い。 引数にSymbolかStringを渡せば、それにマッチするヘッダーの値が取り出せる。 scala val route = path("header" / "ping") { get { headerValueByName('Message) { msg: String => complete(s"pong: $msg") } }

    Akka-HTTP - ルーティングDSLの基本となるPathMatcherのまとめ

    2016-05-17QiitaScalaAkkaAkka-HTTP
    Pathを構築するためのDSLであるDirectiveとPathMathcerに
    Path を構築するための DSL であるDirectiveとPathMathcerについて。 ドキュメントは以下。 [The PathMatcher DSL — Akka Documentation](http://doc.akka.io/docs/akka/2.4.4/scala/http/routing-dsl/path-matchers.html) tl;dr 大体ここに書いてある。 [The PathMatcher DSL — Akka Documentation](http://doc.akka.io/docs/akka/2.4.4/scala/http/rout