endpointsはこの方向で進行中の作業です(注:私はこのライブラリの著者です)。 HTTPエンドポイント(使用する動詞、URLなど)からなるAPIを定義する手段を提供し、クライアントやサーバーとしてAPIを使用する実装を提供します。これはScala.jsと互換性があるため、アプリケーションのクライアント側とサーバー側でAPI定義を共有し、静的にチェックされたリモート呼び出しを行うことで利益を得ます。
HTTP機能(キャッシュ、ヘッダー、認証など)の使用を完全に制御できるように設計されています。ここで
は、2つのエンドポイントでの基本的なAPIの定義で次のようにあなたは、実際の呼び出しを実行するために、クライアント側からそれを使用することができます
// POST /my-resources
val create: Endpoint[CreateMyResource, MyResource] =
endpoint(post(path/"my-resources", jsonRequest[CreateMyResource]), jsonResponse[MyResource])
// GET /my-resources/:id
val read: Endpoint[String, Option[MyResource]] =
endpoint(get(path/"my-resources"/segment[String]), option(jsonResponse[MyResource]))
:
val eventuallyResource: Future[MyResource] =
create(CreateMyResource("foo", 42))
val eventuallyResource2: Future[Option[MyResource]] =
read("abc123")
はTW得たように見えます何かが進行中ですhttps://github.com/ThoughtWorksInc/akka-http-rpc/blob/master/src/main/scala/com/thoughtworks/akka/http/RpcSupport.scala –