2016-10-26 2 views
1

나는 Apigility + Doctrine을 실행하는 프로젝트를 운영하고 있습니다. 처음부터 (자동으로 추가 코드를 작성하지 않고) 엔티티 및 콜렉션을 페이지 매김, 필터링 등으로 검색 할 수 있습니다.Apigility + Doctrine : 맞춤 응답

DB 행을 검색 할 때 완벽하지만 대부분의 서비스는 훨씬 더 많은 데이터를 반환해야합니다. 예를 들어, "작업"에 부모가있는 작업 목록. 트리처럼 검색하려면 작업을 먼저 처리해야합니다. 매우 자주 프론트 엔드에게 데이터를 처리하거나 키를 처리하거나 숨기는 방법을 알려주는 플래그가 필요합니다. 때로는 데이터베이스에 FK 나 PK 등으로 표현되지 않은 추가 정보를 검색하는 것이 유용합니다.

지금까지 Apigilty + Doctrine을 사용하여 출력에 ANY 정보를 추가하려면 다음을 수정해야합니다. 엔티티, 올바른 키를 설정하면 작동합니다. 그러나 이전 예에서 필자가 필요로하는 데이터가 데이터베이스에서 나오지 않았거나 관계를 DB 종속성으로 표현할 수 없다는 것을 알 수 있습니다.

질문 :

  1. 이 일을 올바른 방법은 무엇입니까?
  2. 이 문제에 대한 문서가 있습니까?
  3. 정확한 HAL 구조를 유지하면서 출력을 사용자 정의하려면 어떻게해야합니까?

답변

1

기본적으로 Entity 값은 그대로 응답으로 제공됩니다. 값을 수정하려면 (예 : 상위 데이터 검색, 하위 데이터 검색 또는 데이터 형식 수정)이 Entity에 대해 Hydrator을 만들고이 Entity 값에 대해 Hydrator Strategy 사용자 정의를 만들어야합니다. 여기

Apigility교리 프로젝트에서 Hydrator 예이다

https://github.com/aqilix/zf3-apigilty-oauth2/blob/1.0.1/module/User/src/V1/Hydrator/UserProfileHydratorFactory.php

관련 문제