API 응답에 상위 레벨 데이터 추가 방법
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
웹 개발
대상자
- 대상자: Laravel API 개발자
- 난이도: 중급 (Laravel의 Resource 클래스 경험 필요)
핵심 요약
additional()
메서드 사용으로 API 응답의 최상위 레벨에 메타데이터 추가 가능JsonResource
클래스에서additional()
메서드를 통해 데이터 확장- 예시 결과 형식:
```json
{
"data": {"name": "Nuno Maduro", "role": "Software Engineer"},
"YouTube Channel": "..."
}
```
섹션별 세부 요약
1. 기존 리소스 데이터 구조
- 리소스에서 반환되는 기본 데이터 예시:
```json
{"data": {"name": "Nuno Maduro", "role": "Software Engineer"}}
```
FooResource
클래스를 통해 데이터 생성
2. `additional()` 메서드 활용
additional()
메서드로 최상위 레벨에 데이터 추가:
```php
return FooResource::make(Baz::first())
->additional([
'YouTube Channel' => '...'
]);
```
JsonResource
클래스의 기능을 활용한 확장 방식
3. 최종 응답 구조
data
필드 외 추가 메타데이터 포함:
```json
{"data": {...}, "YouTube Channel": "..."}
```
with()
메서드는 동일한 기능을 제공
결론
- Laravel의
JsonResource
에서additional()
메서드를 사용하여 API 응답의 상위 레벨에 메타데이터를 쉽게 추가할 수 있음 - 공식 문서와
with()
메서드를 참고하여 추가적인 확장 가능