2011-01-01 5 views
3

私はこの期間に取り組んでいるプロジェクト用のWeb APIを実装する必要があります。 XML-RPC、SOAP、RESTのような多くの標準プロトコルがあります。どうやら、XML-RPCは、私が見たものから実装して使うのが最も簡単なものですが、APIを実装するためにXML-RPCを使用することについて何も見つかりませんでした。代わりにPHPなどでREST APIを作成する方法についてのチュートリアルが多数見つかりました。 XML-RPCを使用してパブリックWeb APIを実装するためのカウンタの表示はありますか?XML-RPCは公開API実装のプロトコルとして悪用されていますか?

もっと一般的に言えば、APIのカスタムプロトコルを定義して、単純なものにすることができます(つまり、必要なパラメータを含むGET要求のみを受け入れる)。標準プロトコルを使用する必要がありますか?

答えて

1

あなたのアプリが単純なものなら、GETリクエストとパラメータの受け渡しだけで問題はありません。 SOAPのような標準を使う必要はありません。

送信するものがエンティティの場合、技術的にはRESTを使用します。たとえば、移送するドメインオブジェクトがある場合は、これらをGET経由で取得し、PUT経由で標準URLで更新することができます。多くの人が上記の最初のオプションを休憩と呼んでいますが、そうではありません。

SOAP/XML-RPCは、太陽の下ですべてのプラットフォーム用のライブラリを持っていますが、XMLの膨らみと(比較的)複雑なスキーマによってゆっくりと死んでいくプロトコルです。私はこれらのプロトコルの大ファンではなく、広く使われたことはありません。人々はそうでないと主張するかもしれませんが、パブリックプロトコルのどちらかを使用する大規模なWeb企業を探してみてください。私はその人にサンドイッチを購入します。

JSONが今世界を引き継いでいるようです。それはコンパクトで、解析が速く、ウェブアプリケーションに理想的です。これをそのままjavascriptに組み込むことができます。あなたはJSONを返すHTTP GETを使うだけで非常に遠くまで得ることができます。

+0

会社とSOAPを使用して...冗談を離れて、私はあなたのエンドユーザーが主にあなたと私とB2Bのビジネスのような人々である "大規模なWeb企業"の違いを考える。 SOAPが実際に使用される場所は次のとおりです。 – mtraut

+0

> JSONを返すHTTP GETを使用するだけで非常に簡単に取得できます。 これは良い解決策であるかどうか自分自身に尋ねる前に、今まで私が実際にやっていたことです。あなたはこれが実際のアプリケーションで使用できると思いますか? –

+0

私は本当のアプリで常にJSONをプロトコルとしてHTTP GETを使用しています。私の現在の雇用主はこれをほぼ独占的に使用しています。 – monkjack

0

SOAPを使用するだけではなく、多くのプラットフォームで実装する方がはるかに簡単です。

SOAPをサポートしていないプラットフォームを使用している場合、XML-RPCを使用する方が簡単かもしれません。しかし、ほとんどのプラットフォームはXML-RPCをサポートしていません。

SOAPプロトコルはXML-RPCに基づいており、XML-RPCはそれほど有用ではありませんでした。

0

あなたの質問にお答えするには、APIのコンシューマがより多くの経験を持つ可能性が高いため、SOAPまたはRESTful APIを実装するのが最もよいと思います。

また、RESTful APIを設計する際に非常に大きな部分を占める、特定のパラメータを使用して取得要求を受け取る方法についての最後のビットです。実装が簡単だと思われる場合は、あなたが提案した代替ソリューションに非常に近いと思うので、選択した言語でRESTful APIを構築するためのリサーチを行うことを強くお勧めします。

+0

ええ、私はRESTについて少し読んだけど、単純なGET/POST要求がはるかに簡単で使いやすいことが分かったので、何か不足しているかもしれません。私はそれについてもう少し詳しく読んで、私が啓発されているかどうかを見てみましょう。 –

0

私たちのアプリケーションは、すべての3つのプロトコル

  • プレーンHTTPを提供
  • のXML RPC
  • SOAP
私たちの経験から

初心者やリソース指向のユーザーは、プレーンHTTPを使用しています。 XML RPCを使用することを選択した人はほとんどいませんでした。ほとんどの場合、彼らはトピックに新しいし、多くのサービスAPIを持っていない。ハイエンドユーザーや技術愛好家はSOAPを求めています。

私はXML-RPCの日は終わったと思います。単純なHTTP POST(クリーンなサービスシグネチャを定義できればいいですが、プリミティブ型しか持たないオブジェクト、実際のオブジェクトの感覚がない方が良いです)、リソースが制限されていない場合はSOAPを選択してください。

JSON RPC over XML RPCのような「新しい」ものも好きです。 JSONは、より基本的なプリミティブパラメータシグネチャが必要な場合に適しています。

+0

興味のないところで、3つのプロトコルをサポートすることの利点は何ですか? – monkjack

+1

私たちのツールのビジネス機能は、しばしばワークフローの1つのステップであるため、私たちが事業を行っているほとんどのサイトで統合されています。また、すべてのサイトにはノウハウとツールセットがあります。そして最終的には、あなたの設計が準備されているならば、それほど多くの努力を払う必要はありません。 – mtraut

0

すでに存在する操作を使用できるときに、リソース(クライアント開発者が学習する必要がある)で操作するための独自のセマンティクスを定義することが欠点です。

HTTPは、使用できる操作/アクション/動詞を定義します。これを使うと、新しい計画を覚えることなくapiユーザーが呼び出せる統一されたインターフェイスを提供することができます。

このようにすると、RESTの有益な制約の1つを達成できます。

0

私は会社のためにmagentoアンドロイドアプリを作る必要があり、3つのSOAP、RESTとXML-RPCの間で混乱し、最終的にはXML RPCと一緒に行きました - 本当に素晴らしいと簡単です:D

関連する問題