問題タブ [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.

0 投票する
2 に答える
357 参照

haskell - Servant ライブラリでの DataKind 型昇格の解読

タイプレベルの Web DSL であるサーバントライブラリのチュートリアルを読み進めようとしています。ライブラリは、言語拡張機能を広範囲に使用します。DataKind

そのチュートリアルの早い段階で、Web サービスのエンドポイントを定義する次の行を見つけました。

型シグネチャに文字列と配列があることの意味がわかりません。また、 の前の目盛り ( ') が何を意味するのかわかりません'[JSON]

私の質問は、文字列と配列の型/種類は何か、そしてこれが後でWAI エンドポイントになったときにどのように解釈されるのでしょうか?


補足として、説明するときにNatand を一貫して使用すると、このことを理解しようとするときに、イライラするほど限られた例を見ることができます。その例をさまざまな場所で少なくとも十数回読んだと思いますが、何が起こっているのかまだ理解できていません。VectDataKinds

0 投票する
1 に答える
354 参照

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)。

0 投票する
1 に答える
285 参照

mongodb - Servant で MongoDB を永続的に使用する

persistentサーバント Web サービス API で MongoDBを使用しようとしています。以下は私のモデルコードです(Model.hs

データベースにアクセスするためのコード:

エラーが発生します:

エラーは理解できましたが、ライブラリが からの変換に必要な関数を自動的に生成するはずだと思いましたDocument -> User

そのために生成する機能とは?

0 投票する
1 に答える
312 参照

haskell - Servant を使用したカスタム Reader モナドでの認証の使用

基本認証で保護された API

型のハンドラをサポートしますAuthData -> Handler a

私はハンドラーのセットを持っています:

これは、AuthData から部分的に構築されたコンテキストを持つ ReaderT である AuthMonad で実行されます。enterとを使用して、タイプ のサポート ハンドラーをAuthMonad :~> Handler取得できますが、本当にやりたいのは、runReaderT の環境として引数を使用することです。Server APIAuthData -> AuthMonadAuthData

これを行う方法を理解するには、型の魔法について十分enterに理解していません。何か案は?

0 投票する
1 に答える
94 参照

haskell - サーバント-0.4.4.7 からサーバント-0.7.1 への移行

を使用しましたservant-0.4.4.7。以下は私のモデルコードです:

このコードは機能しましたが、 を使用するservant-0.7.1とエラーが発生します。

型の不一致があることは理解していますが、それを修正する方法がわかりません。

ありがとう!

0 投票する
1 に答える
172 参照

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"…})。何が起こっていたのか理解できません。

0 投票する
2 に答える
414 参照

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)です。そのような値をハンドラーの型に戻すにはどうすればよいですか?

0 投票する
1 に答える
414 参照

web-services - Haskell Servant - API タイプを作成する方法はありますか?

これが有効な構文ではないことはわかっていますが、サーバントでこのようなことを達成する方法はありますか?

つまり、API を構成します。スポックでは、モナドのルート構築でこれを行うことができましたが、サーバントでこれを行う方法がわかりません。

このようにして、API 間で共有ルートを再利用できます。これを使用するもう 1 つの理由は、Raw などのクライアント ジェネレーターでは機能しない特定の型があることです。

0 投票する
4 に答える
776 参照

haskell - サーバント サーバー送信イベントのサポート

サーバントの Server-Sent Event (SSE) エンドポイントを定義するにはどうすればよいですか? ドキュメントはこのケースをカバーしていないようです。

サーバントがリアルタイムのユースケース向けに設計されていない場合、どの Haskell サーバーフレームワークが SSE をサポートしていますか?