問題タブ [spray]
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.
json - スプレーで投稿リクエストを送信する
フレームワークを使用して単純な HTTP リクエストを作成する必要がありますspray
。私は彼らの Web サイトでいくつかの例を見つけましたが、それらは複雑で、私には必要のない Akka が関係していることが判明しました。
さらに、リクエストのヘッダー ( X-Application
、content-type
など) と、もちろんリクエストの投稿データ (私の場合は JSON のデータ) を入力できる必要があります。
では、どうすればいいですか?
scala - 新しい REST API を開発するには、spray または akka-camel を使用する必要がありますか?
Akka を使用して新しい REST API を開発する必要がありますが、Spray ベースの akka-io が akka-camel 拡張機能と比較して優れたオプションであるかどうかを判断できません。どちらの API もノンブロッキング IO をサポートしているようです。akka-camel の方が簡単に見えますが、Spray と比べてパフォーマンスがどうなのかはわかりません。
シナリオは単純です。HTTP REST エンドポイント経由でメッセージを受信し、メッセージを処理して、HTTP POST 経由で多くの外部サービスの 1 つにディスパッチします。
akka-camel はこれに最適ですが、1 日に数百万件のメッセージを処理する必要があるため、akka-camel と Spray のパフォーマンスが同等かどうかは疑問です。どちらも REST 統合に適しています。akka-camel はより成熟している可能性がありますが、Spray はおそらくより最新です。
AkkaチームはSprayを採用しているので、RESTベースの統合にはakka-camelよりもSprayを推奨するのだろうか.
scala - スプレー クライアント ポスト マルチパート
スプレーを使用してサーバーにマルチパート フォームを投稿したいと考えています。特に画像を投稿したいです。
私が問題を抱えているのは、マルチパートへのファイルのマーシャリングです。スプレーでは、デフォルトのマーシャラーであると言及されていますが、2つを結び付けることができないようです.
私は現在、Scala 2.10 に移行していないため、Spray 1.0-M7 を使用しています。例がそのブランチに準拠していれば、それは素晴らしいことです。
私が現在持っているのはこれです:
もちろん、次のようなエラーが表示されます。
私が見つけたほとんどの例では、マーシャリングに content(as[X]) ディレクティブを使用していますが、私はスプレー ルーティングを使用していません。別のフレームワークで構築されたアプリケーションでスプレー クライアントを使用して投稿を実行する必要があるだけです。
ありがとう
編集
私は実際に次のようにマーシャリングすることができました:
残念ながら、これはまだ機能していません。データは転送されていますが、サーバーはファイルを見つけることができません。
Wireshark のキャプチャにより、次のことが明らかになります。
これは、Advanced Rest Client で作成された有効なリクエストのキャプチャです。
spray - カスタムディレクティブから例外をスローするには?
私のサービスのすべての API 呼び出しは、マルチパート ボディで渡されるパラメーターを含む HTTP POST です。現在、私の認証は次のようになっています
しかし、それはあまりにも冗長に見えます。理想的には、次のようなものが必要です。
だから私はそれを次のように書きます:
しかし、リクエストで noをmyAuthorization
スローするようにするにはどうすればよいでしょうか。AuthorizationFailedRejection
token
scala - Play2アプリケーションコンテキスト内のspray.io httpサーバー
Play 2 アプリに API サービスを実装しています。現在、API は 5 つのサーバーで毎秒 5 ~ 7000 のリクエストを処理しています。最近、Spray.IO と Play2 のベンチマークを行ったところ、単純な http リクエストでほぼ 3 倍のパフォーマンスが得られました。
代わりに、Spray HTTP サーバーを Play アプリに埋め込むことができれば、Spray ですべてを再実装するのは避けたいと思います。
これは可能ですか?そして、これの例はありますか?
scala - Scala Spray URI のパスに末尾のスラッシュがないことを確認するにはどうすればよいですか?
スプレー URI が末尾のスラッシュでサーバーに送信されているため、コードが失敗していると思います。末尾にスラッシュがないことを確認するにはどうすればよいですか?
スプレーを使用して Scala でクライアント認証コードを作成しています。さまざまなサーバーとダンスを行い、ScalaFX WebView でユーザー資格情報を取得し、サーバーは形式の URL を送信します: https://server.com/path/to/start?st=abc123。
バックグラウンドでSprayがこれをhttps://server.com/path/to/start / ?st=abc123に変換していることはかなり確信しているので、私はそれを完全には証明していません(パスの終わりの間の/に注意してくださいおよびクエリ)。
scala - スプレー パラメータのマッピング
スプレーの機能を理解するために単純な API を構築しようとしていますが、パラメーターを実際の型にマッピングすることで既に行き詰まっています。コンパイルに失敗する次のコードがありますが、Spray 自身のドキュメントに記載されているとおりに使用しています。
私が受け取るエラーは
[エラー] /.../MyService.scala:47: ')' が必要ですが、'[' が見つかりました。
[エラー] parameters('lat as[Double], 'lng as[Double]).as(Nearby) { lat =>
私は Scala にも少し慣れていないので、非常に単純な間違いを簡単に犯す可能性があることに言及する価値があります。
scala - スプレー json とリストのマーシャリング
カスタム オブジェクトのリストを JSON にマーシャリングするために、spray-json を使用しています。次のケース クラスとその JsonProtocol があります。
このようなルートに入れようとすると:
次のようなエラーが表示されます。
おそらく、あなたは何が問題なのか知っていますか?
私はスプレー1.1-M7とスプレーjson 1.2.5でScala 2.10.1を使用しています