2009-08-06 14 views
3

私はWCFの初心者です(一般的に.NETでかなり錆びます)ので、これは回答のある質問です。WCFを使用してRESTful JSON APIを使用する

バックエンドにRESTful JSONベースのAPIを使用するASP.NET MVCアプリケーションを構築しています。私は、.NETでこのようなAPIと話す方法のさまざまなオプションを検討してきました.WCFがこれまでに最も人気のある選択であるように見えます。もう少しWCFを読んで、私は基本的な消費者クラスを持っています。

しかし、今私はそれ以上のことをする必要があり、私はあまり進んでいません。 JSON本体でAPIにPOSTを送信する必要があります。ここで私がこれまで持っているものだ:私は把握することはできませんどのような

using System.ServiceModel; 
using System.ServiceModel.Web; 
using System.Runtime.Serialization; 

namespace APIConsumer { 
    [ServiceContract] 
    public interface IAPIClient { 
     [OperationContract] 
     [WebInvoke(
      Method = "POST", 
      BodyStyle = WebMessageBodyStyle.Bare, 
      RequestFormat = WebMessageFormat.Json, 
      ResponseFormat = WebMessageFormat.Json, 
      UriTemplate = "/session/login.json" 
      )] 
     string SessionLogin(string login_name); 
    } 

    public class APIClient : ClientBase<IAPIClient>, IAPIClient { 
     public string SessionLogin(string login_name) { 
      return this.Channel.SessionLogin(login_name); 
     } 
    } 
} 

はAに合格する正しい方法です)POSTボディ& B内の任意のデータ)はJSONとして適切なシリアル化された.NETオブジェクトPOSTボディに。どこかでそれをどうやって動かすかの良い例はありますか?

+0

私はあなたにs/WFC/WCF/gが必要だと思いますタグ – jcopenha

答えて

2

POSTのJSON本体をSessionLogin操作にフォーマットする方法が不思議であれば、非常に簡単です。 JSONデータは、単に次のようになります。

{"login_name": "someuser"} 

WCFフレームワークはあなたのためのパラメータのlogin_nameに「someuser」をあなたの操作にそのデータをマッピング処理すると、値を渡します。これはあなたが必要としていたものですか、より複雑なシナリオが必要でしたか?

+0

JSONのフォーマットは問題ではありませんが、JSONが実際にリクエストされて本文に送信されるようにするにはどうすればよいですか? – Tivac

+1

それはサービスをどのように呼び出すかによって異なります。 javascript、jquery、mootools経由ですか?それとも、.NETクライアントからですか? jqueryからのjqueryの場合、jqueryはデータパラメータ(本体に入ります)を持つ便利なajax呼び出し元を提供するので、かなり簡単です。その別の.NETクライアントであれば、jsonの表記をまったく気にする必要はありません。ネイティブオブジェクトで直接作業し、WCFはすべてのシリアライズと変換をハンドリングします。 – jrista

0

同じ問題が発生していました。 JSONをポストすることは時々ありますが、必ずしもそうではありません。それは信頼できず、失敗する理由は不思議に思えるかもしれません。私は、POSTが価値あるものよりも多くの仕事をしていたこと、そしてGETでこれを達成できることが分かりました。

http://winsockwebsocket.codeplex.com/

(それの一部:あなたは絶対にはPOSTを使用してサービスを設計するを持っていない場合、私はあなたがここでGETとPOSTで何をしようとして達成する方法の作業例を持っています一見無関係のプロジェクトですが、Northwind.Webフォルダに移動してjQueryからWCFへJSONを送信/受信する完全な動作例をご覧ください)

関連する問題