BT

ウェブサーバ、ウェブ開発ライブラリのSuaveがリリース

| 作者: Pierre-Luc Maheu フォローする 3 人のフォロワー , 翻訳者 徳武 聡 フォローする 0 人のフォロワー 投稿日 2016年2月14日. 推定読書時間: 2 分 |

原文(投稿日:2016/01/27)へのリンク

.NET向けの新しいウェブ開発ライブラリであるSuave 1.0がリリースされた。Suaveは軽量で非同期のウェブサーバとHTTPを処理するパイプラインを記述するセマンティックなモデルを提供する。SuaveはWindows、OSX、Linux、.NET、Monoなど複数のOS、プラットフォームで動作する。どのような.NET言語からも使えるが、Suaveのコンビネータと型はF#から使われるように設計されている。

Suaveのプログラミングモデルではコンビネータを使い、大きめのファンクションを作成する。SuaveのメンテであるHenrik Feldt氏は、次のように説明する。

コンビネータは高階関数であり、異なる方法で構成され、異なる効果を産み、HTTPレスポンスを生成します。

SuaveはOK "Hello"のようなコンビネータやnotFoundのようなコンビネータを持ち、また、低いレベルのHTTPの構成物も提供し、どんな種類のウェブサービスでもプログラミングできます。Suaveでは、関数をWebPart型を経由して操作します。type WebPart = HttpContext -async<HttpContext option>で取得できます。

option型を使うことで、success/failセマンティクスを使えます。また、異なるルートをエンコードすることもできます。

We use a function called chooseという関数は、WebPartsのリストを受け取り、いずれかのWebPartsがSome httpContextを返すまで、それぞれにHttpContextを与えます。httpContextの内部はサーバがクライアントに返す、エンコードされたレスポンスです。

>=>演算子を使ってWebPartsを構成し、ルーティングをエンコードできます。

下のコードはSuaveを使った"Hello World!"だ。このウェブアプリケーションではすべてのリクエストに対して"Hello World!"を返す。

open Suave
startWebServer defaultConfig (Successful.OK "Hello World!")

次の例では、ルートにマッチしなかった場合、404を返している。

let app : WebApp =
   choose[
     path "/foo" >=> OK "foo"
     path "/bar" >=> OK "bar"
     notFound "no handlers found."
   ]
startWebServer defaultConfig app

Suaveはオープンソース。GitHubにホストされている。ドキュメントやサンプルは公式サイトで確認できる。InfoQではHenrik Feldt氏にインタビューし、Suaveの詳細と使い方について話を聞いた。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT