2012-02-28 4 views
6

JSONを新しいRESTベースのシステムに使用してみるとすばらしく見えますが、私の理解を暗に示すものがあります。アプリケーションの両側にJSONを同期させておく戦略は何ですか?JSONベースのアーキテクチャ、フロントエンドとバックエンドを同期するにはどうすればよいですか?

あなたがGETをしているのは、www.mysite.com/item/12345です。その後、アプリケーションの.net側がdbに移動し、ID 12345のアイテムを取得し、それをJSONにシリアル化して戻すオブジェクトモデルItemに解決します。その後、

{ 
    "Id": "12346", 
    "ItemName": "New Item", 
    "ItemCost": 45 
} 

を次に、アプリケーションの.NET側がそれを拾って、Itemオブジェクトにそれをdeserialisesと - www.mysite.com/itemとパス:

あなたにPOSTを行う場合それを手渡してdbに追加する。

JSオブジェクトモデルと.netオブジェクトモデルのシリアライゼーションを同期させるにはどうすればよいですか?これは手作業で保守するだけで済みますか、.netモデルのシリアル化に基づいてJSONのテンプレートを提供するという巧妙な方法がありますか?

私はちょうどベストプラクティスを探していて、何が完了したのか分かりませんし、クライアント側がJSONをどのようにサーバー側に渡すのか分かりません。

+0

非常に良い質問です。これは、私が反射を介してこの種のブリッジを構築し、JavaScriptを動的に生成することを考えています。 – Humberto

+0

私は、コンシューマーがJSONオブジェクトを返すように呼び出すことができるシン・サービスを持つアイデアを思いついています。ネットオブジェクト)を作成した後、そのオブジェクトを作成して戻すことができます。しかし、消費者が特定の特性が存在し、それらを操作することができるということを知っているところでは、依然として神秘的な要素があります。私はそれがJSON Web参照だろうと思いますか? – David

答えて

1

私は個人的に、これらの変更を.NET環境で簡単に「動かす」ことがわかりました。卵を吸う方法を教えたくはありませんが、Javascriptは非常に疎結合な言語なので、蹄に変更/機能/特性を追加できるのに対し、.NETではPOCOをより厳格にテストして安定させるのが簡単です。

私は最近、オブジェクトを作成するときに自分のサービスから空のPOCOを生成してから、永続化のためにサービスに戻す前に適切な操作をしています。 Javascriptで作業することはできますが、少なくともDataContractsは表面的なレベルで一致させることができます。

+1

私は文学だけで非常に似たような考え方で誰かに返答を終えました。概念的には、私はそれがクライアント側になると思う方法は、 'var item = GetItemTemplate()'のような、空のシリアライズされたオブジェクトを返す非常に薄いサービスを呼び出すものです。クライアント側はそれを操作して正しい形式のみであることを知って戻します。 – David

+0

ええ、それはかなりです。 – SeanCocteau

関連する問題