問題タブ [servant]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
haskell - Servant ライブラリでの DataKind 型昇格の解読
タイプレベルの Web DSL であるサーバントライブラリのチュートリアルを読み進めようとしています。ライブラリは、言語拡張機能を広範囲に使用します。DataKind
そのチュートリアルの早い段階で、Web サービスのエンドポイントを定義する次の行を見つけました。
型シグネチャに文字列と配列があることの意味がわかりません。また、 の前の目盛り ( '
) が何を意味するのかわかりません'[JSON]
。
私の質問は、文字列と配列の型/種類は何か、そしてこれが後でWAI エンドポイントになったときにどのように解釈されるのでしょうか?
補足として、説明するときにNat
and を一貫して使用すると、このことを理解しようとするときに、イライラするほど限られた例を見ることができます。その例をさまざまな場所で少なくとも十数回読んだと思いますが、何が起こっているのかまだ理解できていません。Vect
DataKinds
haskell - Haskell で Web ページのステータス コードを取得する
Haskell に Web ページが存在するかどうかを確認する方法を見つけようとしています。サーバーは HTTP2/HTTPS のみで、ページがサーバント アプリケーションに存在するかどうかを確認しようとしています。
ステータス コードが 200 か 404 かを確認するだけの適切なドキュメントを含む Haskell パッケージはありますか? 強力な HTTPS および HTTP2 サーバーを使用していますか?
ここで私は現在httpコンジットで持っていますが、奇妙な例外を受け取っています (TlsExceptionHostPort (HandshakeFailed (Error_Protocol ("expecting server hello, got alert : [(AlertLevel_Fatal,HandshakeFailure)]",True,HandshakeFailure))) "thibaud.dauce .fr" 443 および StatusCodeException)。
mongodb - Servant で MongoDB を永続的に使用する
persistent
サーバント Web サービス API で MongoDBを使用しようとしています。以下は私のモデルコードです(Model.hs
)
データベースにアクセスするためのコード:
エラーが発生します:
エラーは理解できましたが、ライブラリが からの変換に必要な関数を自動的に生成するはずだと思いましたDocument -> User
。
そのために生成する機能とは?
haskell - Servant を使用したカスタム Reader モナドでの認証の使用
基本認証で保護された API
型のハンドラをサポートしますAuthData -> Handler a
。
私はハンドラーのセットを持っています:
これは、AuthData から部分的に構築されたコンテキストを持つ ReaderT である AuthMonad で実行されます。enter
とを使用して、タイプ のサポート ハンドラーをAuthMonad :~> Handler
取得できますが、本当にやりたいのは、runReaderT の環境として引数を使用することです。Server API
AuthData -> AuthMonad
AuthData
これを行う方法を理解するには、型の魔法について十分enter
に理解していません。何か案は?
haskell - サーバント-0.4.4.7 からサーバント-0.7.1 への移行
を使用しましたservant-0.4.4.7
。以下は私のモデルコードです:
このコードは機能しましたが、 を使用するservant-0.7.1
とエラーが発生します。
型の不一致があることは理解していますが、それを修正する方法がわかりません。
ありがとう!
ajax - サーバントで ajax を使用する
servant-0.7.1
私は、 fo 実現サーバーでHaskell を使用しています。以下は私のソース コードです。
のモデルUser
:
curl
以下に示すように、testinを使用しました。
すべてが機能しています。データベースに追加されたデータですがajax
、バックエンドから使用すると以下のようになります。
エラーが出ます!
デバッガーは object をチェックしobjectData
ました。わかりました ( Object {userFam: "qqq", userIm: "www", userOt: "eee", userEmail: "rrr", userLogin: "ttt"…}
)。何が起こっていたのか理解できません。
haskell - Servant とカスタム モナド スタックで failWith を使用する
カスタムモナドスタックでServantを使用しています:
さて、多くのハンドラーでは、db からいくつかのデータ (Persistent) をフェッチしてそれに基づいて処理する必要があるだけなので、次のようになります。
結局のところ、db からフェッチするときは を使用する必要Maybe
があり、Maybe がNothing
である場合は、エラーをスローして、Servant サーバーがそれを適切な HTTP 応答に変換するようにする必要があります。Control.Error.Util
これにより、(!?) :: Applicative m => m (Maybe a) -> e -> ExceptT e m a
ヘルパーとの発見に至りました。だから私は次のようにしてみました:
しかし、これはコンパイルされません。!?
ここの結果は次のExceptT ServantErr m0 (Entity SomeEntity)
とおりAppHandler (Entity SomeEntity)
です。そのような値をハンドラーの型に戻すにはどうすればよいですか?
web-services - Haskell Servant - API タイプを作成する方法はありますか?
これが有効な構文ではないことはわかっていますが、サーバントでこのようなことを達成する方法はありますか?
つまり、API を構成します。スポックでは、モナドのルート構築でこれを行うことができましたが、サーバントでこれを行う方法がわかりません。
このようにして、API 間で共有ルートを再利用できます。これを使用するもう 1 つの理由は、Raw などのクライアント ジェネレーターでは機能しない特定の型があることです。
haskell - サーバント サーバー送信イベントのサポート
サーバントの Server-Sent Event (SSE) エンドポイントを定義するにはどうすればよいですか? ドキュメントはこのケースをカバーしていないようです。
サーバントがリアルタイムのユースケース向けに設計されていない場合、どの Haskell サーバーフレームワークが SSE をサポートしていますか?