Symfony4+api-platform에서 데이터를 저장할 때의 동작 맞춤설정
3356 단어 PHP심포니4API-PlatformREST-API
What is Symfony api-platform?
rest api를 Symfony4로 매우 간단하게 구현할 수 있는 번들입니다.
h tps // 아피-p t후 rm. 이 m
※ 인스톨 방법이나 기본적인 사용법은 기존의 기사가 있으므로 그쪽을 봐 주세요.
htps : // 코 m / ぺ y_s / ms / 9 세세 c252 바베 8057047
htps : // m / 화병 / ms / 2 또는 d91228b29f6f77317
Customize actions on data persist
단순히 데이터를 읽고 쓰는 것만으로는 기본 설정 그대로 @ApiResource
별 엔티티를 늘리는 것만으로 사용할 수 있습니다. 싶을 때라고 생각합니다.
예를 들면 데이터 보존과 동시에 메일 송신이나 Slack 투고등.
그러한 경우에 어떤 구현을 하면 좋은지 조사했다&실험해 보았습니다.
Create your own DataPersister
DataPersisterInterface
를 구현한 커스텀 클래스를 만드십시오.
단순히 데이터를 읽고 쓰는 것만으로는 기본 설정 그대로
@ApiResource
별 엔티티를 늘리는 것만으로 사용할 수 있습니다. 싶을 때라고 생각합니다.예를 들면 데이터 보존과 동시에 메일 송신이나 Slack 투고등.
그러한 경우에 어떤 구현을 하면 좋은지 조사했다&실험해 보았습니다.
Create your own DataPersister
DataPersisterInterface
를 구현한 커스텀 클래스를 만드십시오.supports($data)
에서 사용자 지정 저장 작업을 수행하려는 대상 지원 persist($data)
에 실제 저장 처리 쓰기 remove($data)
에 실제 삭제 프로세스 작성 샘플은 이쪽 htps : // 기주 b. 코 m / 77 ぇ b / 아피 ぁ t ぉ rm p ぁ yg 로운 d / b ぉ b / 아 1 아후 552 베 f5 28 b src / 페르시 s r / 보오 k 페르시 s r. php
※ 단순한 샘플이므로 TimestampableExtension으로 할 수 있는 것 밖에 하고 있지 않습니다만, 실제로는 여기에서 여러가지 처리를 더할 수가 있습니다.
Define your DataPersister as Symfony service with api_platform.data_persister tag
자작의 DataPersister를
api_platform.data_persister
태그를 붙여 서비스로서 정의합니다.샘플은 이쪽 htps : // 기주 b. 코 m / 77 ぇ b / 아피 ぁ t ぉ rm p ぁ yg 로우 d / b ぉ b / 아 1 아후 552 베 f5 28 b 콘후 g/세 r ゔ ぃ 세 s. 이나 ml#L29-L34
이 상태에서 쓰기 API를 호출하면 DB에 데이터를 저장할 뿐 아니라 사용자 지정 처리를 수행할 수 있습니다.
How does this work?
(여기부터는 여담입니다.)
api_platform.data_persister
태그를 붙이면, 자작의 DataPersister가 data_persister로서 인식되어 ChainDataPersister 클래스에 세트 됩니다.
※ 참고 Symfony의 DI 컨테이너에서 태그가 어떻게 사용되는지는 Symfony에서 동종의 클래스를 대량으로 사용할 때 DI로 즐기는 테크닉(자작 태그의 추천) 에 써 두었습니다
저장 시 실제로 어떤 DataPersister를 사용하는지는 ChainDataPersister 클래스에 의해 전략 패턴을 사용해 결정되고 있습니다.
단순히 api-platform을 사용하는 것뿐만 아니라, 구조에도 흥미가 있는 분은 봐 주세요(조건 분기 금지!)
※ 덧붙여서 어쨌든 공식 문서에 커스텀 DataPersister 이용에 대해서 기재가 보이지 않았기 때문에 소스 코드를 읽고 아타리를 붙여 실험으로 확인했습니다
Reference
이 문제에 관하여(Symfony4+api-platform에서 데이터를 저장할 때의 동작 맞춤설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/77web@github/items/3188fa4ea698ce6f3fae
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Symfony4+api-platform에서 데이터를 저장할 때의 동작 맞춤설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/77web@github/items/3188fa4ea698ce6f3fae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)