2016-12-07 5 views
0

나는 다음과 같은 상황에 직면하고있다 : 객체의 표현을 위해 객체의 속성을 계산할 수 있습니까?

가 나는 Post 개체가, 즉는 Comment 개체에 다 대다 관계를 통해 연결되어 있습니다. Post은 "위로"로 표시된 최대 값이 2 Comment 일 수 있습니다.

게시글의 기능을 제공하는 API를 노출해야합니다 (게시물의 상세보기를 표시 할뿐 아니라 괜찮습니다). 나는이 API의 소비자의 대부분은 나중에 원하는 것을 알고, 그러나

[{ 
    title: "Lorem ipsum", 
    .... 
    comments: [{ 
      "author": "...", 
      "comment": ".....", 
      "top": false 
     }, ... // repeat a few thousand times 
    ] 
},... 
] 

: 문제는 PostComment s의 엄청난 금액을 가질 수 있고, 나 자신이 표현을 표시하는 표시되지 않는 것이있다 그러나 내가 계산, 여기

[{ 
    title: "Lorem ipsum", 
    .... 
    topComments: [{ 
      "author": "...", 
      "comment": ".....", 
     }, .... // repeat once more if needed 
    ] 
},... 
] 

내가/게시물/ID_OF_POST/코멘트를 통해 액세스 할 수있는 모든 의견을 표시하지 않도록 선택 : 디스플레이 바로 위에 코멘트 (들), 그래서 나는이 표현을 노출 생각하고 "runtime"에서 topComments 속성 (코드의 원래 Object에는 없음)을 표시하고 주석을 표시합니다 맨 위로 표시

비즈니스 논리를 사용하여 계산할 수 있으며 표시된 객체에 존재하지 않는 속성을 표시 할 수 있습니까? 나중에, 새로운 numberOfComments 계산 된 속성을 추가하고 싶습니다. 그래도 괜찮습니까?

+1

예, 허용되는 이름은 '일시적'또는 '가상'속성입니다. –

+0

@See http : // stackoverflow.com/questions/22926254/add-custom-property-serialize-object –

+0

@MathieuDormeval이 답변으로 게시 할 수 있습니까? 내가 원하는 것을 완벽하게 답변 했으므로 그것을 받아 들일 수있어서 기쁩니다! :) – Lucio

답변

1

네, 그것은 허용 것, 그것이라는 것 "을 과도"또는 "가상"속성.

Symfony Framework를 사용하면 this처럼 할 수 있습니다.

희망이 도움이됩니다!

1

그것이 비즈니스 로직 그것이 물론

사용하여 계산 할 수 귀하의 답변에 미리 감사드립니다.

표현 된 개체에 존재하지 않는 속성이 있습니까?

나는 다른 표현을 반환 그러나 최고 주석의 수집 자원을 얻기 위해 다른 자원를 사용하지 않을 것입니다.

GET /posts/{postId}/top-comments 

은 전체 목록과 동일한 형식으로 메모 배열을 반환하지만 맨 위 주석 만 포함됩니다.

또한 원래 컬렉션 필터를 사용할 수 있습니다

GET /posts/{postId}/comments?top=true 
+0

하지만 상위 주석 배열이 매우 작기 때문에 (최대 2 개 개체) 게시 목록의 표현에 직접 포함시킬 수 있습니까? – Lucio

+1

물론, 왜 안 되니? –