4

大学のプロジェクトでは、Erlang でビジネス層を実装し、REST を使用して複数のフロントエンド経由でアクセスすることを考えています。分散アプリケーションなどの OTP 機能を利用したいと考えています。

私の質問は、gen_server 呼び出し/キャストを他のアプリケーションに公開するにはどうすればよいですか? もちろん、OTP.net や JInterface などの言語固有の「ブリッジ」を介して RPC 呼び出しを行うこともできますが、REST のように一貫した方法でアクセスする必要があります。

4

6 に答える 6

10

すでに述べたように、YawsまたはMochiwebは優れた方法ですが、RESTful APIをすばやく正しく実行するための非常に簡単な方法が必要な場合は、Webmachineを使用してください。これはMochiwebの上のレイヤーであり、Alan Deanの驚くべきHTTPフロー図に基づいて適切なHTTP動作を実装し、RESTを正しく実行するのを容易にします。

私は現在、REST APIを公開し、COMETアプリケーションを処理するために使用しています。私のようなアーランの初心者でも、非常に簡単に実行できます。

于 2009-01-09T04:03:18.217 に答える
3

私は自分の仕事でも同様のことを行いましたが、REST を使用してビジネス レイヤーを公開するのが最善であることがわかりました。Erlang で見つけた最良のメカニズムはMochiwebを使用することです。

Erlang In Practice Screencastにあるスクリーンキャストから、その使用に関する詳細情報を見つけることができます 。エピソード 6 は特に役に立ちますが、どれも優れています。

インストール手順を説明するリソースは、Erlang、Mochiweb、および Nginx がロードされた Ubuntu 8.04 をすばやくセットアップする方法、ネイティブ Erlang インターフェイスを RESTful Mochiweb に移行する (少しの TDD を使用) で、スクリーンキャストが見つからない場合に適切なスタートを切ることができます。あなたの好みに。

于 2009-01-09T02:26:46.523 に答える
2

HTTP フロー図のリンクは無効です。元のバージョンと、Alan Dean と Justin Sheehy の共同作業で作成された更新バージョンも、Webmachine プロジェクトでホストされています: HTTP Diagramm の最新バージョンへのリンク

于 2010-06-11T09:52:29.483 に答える
0

ただの更新で、Webmachineはbitbucketに移動しました:Webmachineへの新しいリンク

于 2010-06-11T09:16:18.753 に答える
0

RESTful インターフェースまたは RPC over HTTP のことですか? 既存のレイヤーの上に RESTful インターフェイスを構築することは、HTTP 経由で既存のメソッドを公開するだけではありません。

(一般的な) rpc レイヤーを実装するには、mochiweb または yaws を使用することをお勧めします。

于 2009-07-09T11:02:05.890 に答える
0

可能であれば、REST のフレーバーで gen_server 呼び出し/キャストを設計するための貴重なアプローチがあります。メッセージを次のように使用できます。

{get, Resource}
{set, Resource, Value} % aka PUT
{delete, Resource}
{add, Resource, Value} % aka POST (possible another names are append, modify or similar)

その後、そのマッピングは簡単です。何らかの変換 URI->RESOURCE を作成するか、ID を使用できます。ほとんどのアプリケーションでは、これは麦汁のアプローチであり、特別に処理する必要がある特別なケースです。このアプローチを使用できない大きなマージンがあると考えることができますが、これはほとんど時期尚早の最適化であるはずです。

于 2009-01-08T16:47:41.107 に答える