2016-11-02 12 views
0

は、我々は例えばjson APIの計算フィールド?拡張する私は思ったんだけど

、我々はできる(または何..ブラウザセッション、ユーザーインターフェースからの)生データと追加入手可能な情報から計算することができるAPI値に追加する必要がありますこのJSONを返すAPIがあります。

{ 
    ownder_id: '123', 
    canAddComment: true, 
    etc... 
} 

これは、値「canAddComment」を直接提供します。 それとも私たちは、これを持っている可能性があり:コメントはowner_idから計算することができ、

{ 
    ownder_id: '123', 
    etc... 
} 

。たとえば、セッションowner_idがAPIから受け取ったセッションと異なる場合、ユーザーはコメントを追加できます。私たちは、代わりにJavaScriptでこれを

を行っている可能性:

//supposing we have a session object with our browser session values 
var params = {owner_id: session.owner_id}; 
$.post(apiURL, params, function(data){ 
    var result = JSON.parse(data); 

    //processing the data 
    result["canAddComments"] = result.owner_id !== session.owner_id; 

    //do whatever with it 
}); 

を最善の方法でしょうか?このような場合の推奨事項は何ですか?

答えて

0

私はあなたが知りたいと思うものが正確ではありません。しかし私の最初の反応は、あなたがそれから機能を作り出すことです。

// constructor 
function Comment() { 
    this.owner_id; 
    this.canAddComment = function() { 
    return session.user_id === this.owner_id; 
    } 
} 

var session = { 
    user_id: 22, 
    name: 'Kevin' 
}; 

var my_comment = new Comment(); 
my_comment.owner_id = 15; 
if(my_comment.canAddComment()) { 
    $.ajax({ 
    // now read the form and submit the data ... 
    }) 
} 
else { 
    alert('Only the author of this message can update ...'); 
} 

EDIT:これは、より良いバックエンド側で計算するか、APIデータを取得した後に計算する必要がある場合

私の質問は、主でした。

一般的な回答があるかどうかはわかりません。いくつかの引数:メソッドを秘密にするには、サーバー側で行う必要があります。他のケースでは、クライアントPCに処理能力を使用させることが理にかなっていると思います。

いいえ、一例:ソート。データがいっぱいのテーブルがあるとしましょう。頭をクリックすると、その列に従ってテーブルがソートされます。すべてのデータをサーバーに送信し、テーブルをソートしてキーの配列を返すようにするのは理にかなっていますか?いいえ、私はクライアントがこれを処理させるのがより理にかなっていると思います。 http://tablesorter.com/docs/

Googleマップに似ています。マーカーをいくつかの場所にドラッグすると、プログラムは最も近い5つのバス停を計算する必要があります。まあ、明らかにあなたはクライアントサイドでこれをすべて計算します。

+0

私の質問は主に、バックエンド側で計算してAPIによって返される方が良いか、APIデータを取得した後に計算する方が良いかどうかです。 (バックまたはフロントエンド) – Alvaro

+0

私は編集を行いました。 –

関連する問題