2016-11-02 3 views
0

원시 데이터 및 추가 정보 (브라우저 세션, 사용자 인터페이스 또는 기타 등)에서 계산할 수있는 API 값을 추가해야하는지 궁금합니다.json API에서 계산 된 필드?

예를 들어 이 JSON을 반환하는 API를 가지고 :

우리에게 직접 값 "canAddComment"를 제공
{ 
    ownder_id: '123', 
    canAddComment: true, 
    etc... 
} 

. 또는 우리가 이것을 할 수 : 의견이 owner_id 계산할 수있다,

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

. 예를 들어, 사용자가 세션 owner_id이 API로부터받은 것과 다를 경우 주석을 추가 할 수 있습니다.

우리는 대신에 자바 스크립트에서 이런 짓을 할 수 :

//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 ...'); 
} 

편집 :이 더 잘 백엔드 측에서 계산 또는 API 데이터를 검색 한 후 계산해야하는 경우

내 질문은 주로이었다.

일반적인 대답이있는 경우 확실하지 않습니다. 몇 가지 주장 : 당신이 비밀로하는 방법을 원한다면, 당신은 서버 측에서 그것을해야만한다. 다른 경우에는 클라이언트 PC가 처리 능력을 사용하는 것이 합리적이라고 생각합니다.

좋아, 한 가지 예 : 정렬. 데이터가 가득 찬 테이블이 있다고 가정 해 봅시다. 머리를 클릭하면 해당 열에 따라 표가 정렬됩니다. 모든 데이터를 서버로 보내고 테이블을 정렬하고 키 배열을 반환하는 것이 합리적입니까? 아니, 클라이언트가 처리하게하는 것이 더 합리적이라고 생각합니다. http://tablesorter.com/docs/

Google지도와 마찬가지로 : 마커를 어떤 장소로 드래그하면 가장 가까운 5 개의 버스 정류장을 계산해야합니다. 음, 분명히 클라이언트 쪽에서이 모든 것을 계산합니다.

+0

내 질문은 주로 백엔드 측에서 더 잘 계산되어 API에 의해 반환되거나 API 데이터를 검색 한 후에 계산되어야하는 경우가 주로있었습니다. (백 또는 프론트 엔드) – Alvaro

+0

수정했습니다. –