3

私は、CentOS/Redhat のフレームワークをサポートする REST および SOAP Web サービスについていくつかの調査を試みてきました。これは、サービス自体と一緒に管理 Web アプリケーションを合理的にサポートすることもできます。

REST または SOAP がサービス通信の手段になるかどうかはまだわかりません。通信要件は非常に単純なので、より重い SOAP インターフェースは必要ないかもしれません。(しかし、どちらも複雑ではありません)

私は過去に Ruby on Rails を扱ったことがありますが (現在は別の側で)、このテクノロジは私のグループの他のメンバーにとって J2EE ほどなじみがありません。

ServiceStack も興味深い (現在調査中) ですが、私は過去に .Net/Mono プロジェクトに携わっており、あらゆる種類の Mono 実装とランタイムの問題に遭遇しました。(この 2 年間で長い道のりを歩んできたことは確かですが、より良い代替手段があるかどうかを確認したいと思います)

基本的には、REST または SOAP をサポートし (どちらも素晴らしいでしょう)、MVC スタイルの Web アプリをサポートできるスタック/フレームワークが必要です。アイデアは、Web サービスと Web アプリが同じデータベースにアクセスできるというものです。Web アプリはエンド ユーザー/管理者の管理インターフェイスであり、Web サービスはリモート システム/制御されたデータへの自動アクセス用です。

最後に、アプリケーション データベース スキーマの約 80% が事前定義され、MVC スタイルのモデリングには従いません。そのため、Ruby on Rails のように、MVC 専用のスキーマ データを厳密にモデル化することを目的としたフレームワークは、モデルを再作成するか、完全に別のデータベース クエリ処理ライブラリを作成する必要があるため、好ましくありません。 Web サービスと Web アプリの両方を使用する必要があります。既存のデータをより柔軟にモデル化できれば素晴らしいことです。(既存のスキーマが後日変更された場合)

私が一般的すぎる場合は申し訳ありません。(または特定の) 意見に興味があるだけです。ありがとう!

4

2 に答える 2

10

ServiceStackサービスは、REST、SOAP、またはMQクライアントで利用できます

RESTとSOAPは異なる方法ですが、ServiceStackのメッセージベースのDTOファーストアプローチは、 RESTエンドポイントとSOAPエンドポイントの両方から同じサービスを呼び出すことができる唯一の.NETフレームワークです。ServiceStack Webサービスは純粋なC#サービスであるため、同じサービスをInMemoryまたはRedisMQホストでホストすることもできます。(RCONのhttp以外のコンテキストホストオプションもあります)。

SOAPに固有の制限

SOAPはすべてをHTTPPost経由でルーティングするため、SOAPエンドポイントで使用できるようにするすべてのサービスに対して、新しいクラスを使用してこの制限を回避するサービスを定義する必要があります。これは、SOAP経由でも利用できるRESTサービスを作成する方法の例です。

于 2012-05-16T22:10:22.193 に答える
5

REST と SOAP は多くの点で大きく異なります。

REST はアーキテクチャ スタイルであり、SOAP はプロトコルです。SOAP は物事の通信方法を定義し、REST はステートレスな記述方法を定義します。

私は HATEOAS (Hypermedia As The Engine Of Application State) を使用した REST を好みます。そのアーキテクチャのアプリケーションは、コンテンツ ネゴシエーション (HTTP でヘッダーを受け入れる) を使用して、特定の URI ( http://example.com/usersなど) とこれらのリソースの表現 (JSON、XML、HTML など) を使用してリソースを公開します。

HATEOS の部分は、<a href=HTML や<link href=ATOM、JSON でリンクするための JSON スキーマなど、リソース間のリンクです。

適切なリファレンス実装は、Netflix API http://api.netflix.com/です。彼らは素晴らしいです。

RESTful 実装のフレームワークは、いくつかの言語で利用できます。Ruby では、Sinatra がおそらく最良の選択です。Flask は Python の担当者です。node.js では、expressjs が非常に普及しています。

私はPHPの男です。私が知っているすべてのフレームワーク (Zend、Symfony、Slim、Code Igniter などを含む) の中で、最高の REST 実装はこのhttp://documentup.com/Respect/Restです。これは、コンテンツ ネゴシエーションを適切な方法で実装する唯一のものです。(免責事項: コード化したので、私の意見は偏っている可能性があります。RESTful フレームワークの Litmus テストhttp://code.google.com/p/implementing-rest/wiki/LitmusTestForFrameworksなどを使用して、自分の意見を聞いてください)。

私が SOAP 通信を好むケースが 1 つあります。それは、私のサービスを利用しているクライアントがすでに他の目的で SOAP を使用している場合です。この場合、一貫性が優先されます。Java 関係者はおそらく SOAP も好むだろうと私は信じています。

于 2012-05-16T17:48:36.897 に答える