2017-05-15 12 views
1

api-platform-generate-crud으로 반응 구성 요소를 생성 할 때 문제가 발생했습니다.
모델에 개체 이메일이 있습니다. 전자 메일 개체를 문자열로 만드는 serializer가 있습니다. API 엔드 포인트가 문자열을 제공합니다.
API-PLATFORM - 개체가 끝점에서 문자열에 직렬화되었습니다.

GET & POST에서 작동합니다.
내가 구성 요소에게 오류 메시지가 반응 생성하려고 깊은 그것에 찾고

TypeError: Cannot read property '0' of undefined 

입니다 발전기는 여전히 내 이메일 대상으로하지 문자열을 볼 것 같습니다.

어떻게하면 API가 강제로 개체가 아닌 문자열로 이메일 속성을 볼 수 있습니까?

+0

엔티티 정의 및 사용자 정의 노말 라이저 (있는 경우)를 게시 할 수 있습니까? –

+0

1. [부분 엔티티] (https://gist.github.com/mysiar/c664d089e51a6107612d7e22d79f650b) 2. [노멀 라이저] (https://gist.github.com/mysiar/2f44a8980133d3df9d82ce6413e3adc6) – mysiar

답변

2

정의한 데이터 모델은 신뢰할 수 있습니다. Hydra 문서의 유형은 PHP 클래스의 유형을 반영합니다. 여기에서 email 속성의 유형은 object입니다. 관련 데이터를 어딘가에 string으로 설정하면이 계약을 더 이상 존중하지 않습니다. Hydra 설명서가 반환 된 데이터와 동기화되어 있지 않습니다.

decoratingapi_platform.hydra.normalizer.documentation 서비스로 Hydra 설명서의 email 속성 유형을 변경할 수 있습니다.

하지만 API를 통해 노출 된 구조체에 가능한 한 가깝게 PHP 클래스의 구조를 유지하는 것이 좋습니다. 클래스에 API 출력이 반영되어야합니다. 사용자 정의 데이터 공급자를 사용하여 노출 될 구조를 수화하기 전에보다 복잡한 데이터 구조 (예 : ORM 엔터티)를 처리 할 수 ​​있습니다.