Laravel에서 API 리소스를 사용하는 방법은 무엇입니까?
API 리소스 사용은 Laravel에서 RESTFUL API를 구축 할 때 구조화 된 JSON 응답을 반환하는 권장 방법입니다. 1. PHP Artisan Make 사용 : 리소스 Postresource를 사용하여 리소스 클래스를 생성합니다. 2. id, title, create_at 등과 같은 ToArray 메소드에서 리턴 필드를 정의하십시오. 3. New Postresource ($ post) 또는 postresource :: Collection ($ posts)을 반환합니다. 4. 새로운 UserResource를 통해 중첩 관계를 처리합니다 ($ this-> WhenLoaded ( '사용자')); 5. 널 리턴을 피하기 위해 필드를 포함시키기 위해 $ this-> when () 조건을 사용하십시오. 6. 페이징 정보와 같은 추가 () 방법을 통해 메타 데이터 추가; 7. 사전로드 관계, n 1 쿼리 피하기, 자원 논리를 간결하게 유지하는 것을 포함한 모범 사례를 따르십시오. 이러한 방식으로 Laravel은 일관되고 유지 관리 가능한 JSON 응답을 자동으로 생성하고 API의 가독성과 성능을 향상 시키며 궁극적으로 효율적인 데이터 출력을 달성 할 수 있습니다.
Laravel에서 API 리소스를 사용하는 것은 특히 편안한 API를 구축 할 때 모델과 컬렉션을 JSON 응답으로 변환하는 깨끗하고 효율적인 방법입니다. Laravel의 API 리소스를 사용하면 반환되는 데이터와 구성 방법을 정확하게 제어하여 응답을 일관되고 유지 관리 할 수 있도록 도와줍니다.

Laravel에서 API 리소스를 사용하는 방법은 다음과 같습니다.
1. API 리소스를 만듭니다
먼저, 장인을 사용하여 자원을 생성하십시오. Post
모델의 경우 실행 :

PHP Artisan Make : 자원 postresource
이것은 app/Http/Resources
디렉토리에서 PostResource
클래스를 만듭니다.
컬렉션 (예 : 게시물 목록)으로 작업하는 경우 Laravel은이를 자동으로 처리 할 수있는 방법도 제공합니다.

리소스 컬렉션을 만들 수도 있습니다.
PHP Artisan Make : 자원 후 수집
그러나 Laravel 8의 기간 동안 ResourceCollection
기본 리소스에 내장되어 있으므로 일반적으로 하나의 리소스 클래스가 필요합니다.
2. 자원 구조를 정의합니다
app/Http/Resources/PostResource.php
오픈. toArray
메소드는 응답에 포함 된 데이터를 정의합니다.
<? php 네임 스페이스 앱 \ http \ 리소스; Illuminate \ http \ resources \ json \ jsonResource를 사용하십시오. 클래스 Postresource는 JSONRESOURCE를 확장합니다 { 공개 기능 toArray ($ 요청) { 반품 [ 'id'=> $ this-> id, 'title'=> $ this-> title, 'content'=> $ this-> content, 'create_at'=> $ this-> create_at-> format ( 'ymd h : i : s'), 'author'=> $ this-> whenloaded ( 'user', function () { 새로운 USERRESOURCE ($ this-> user)를 반환합니다. }), ]; } }
?
$this->whenLoaded()
사용하여 이미로드 된 경우에만 (n 1 쿼리를 피하기 위해) 조건부로 포함하십시오.
3. 컨트롤러에서 리소스를 사용하십시오
컨트롤러에서 모델 또는 컬렉션을 리소스로 래핑하십시오.
App \ http \ resources \ postresource를 사용합니다. app \ models \ post를 사용합니다. // 단일 게시물을 반환합니다 공개 기능 쇼 (Post $ Post) { New Postresource를 반환합니다 ($ post); } // 게시물 목록을 반환합니다 공개 기능 색인 () { postresource :: collection (post :: with ( 'user')-> get ()); }
또는 Pagination (API의 공통) :
공개 기능 색인 () { postresource :: collection (post :: paginate (10)); }
Laravel은 자동으로 Pagination 구조를 처리합니다.
4. 관계 작업 (중첩 자원)
게시물에 사용자가있는 경우 UserResource
작성합니다.
PHP Artisan Make : Resource Userresource
그런 다음 PostResource
내부에서 사용하십시오.
'저자'=> 새로운 userresource ($ this-> whenloaded ( 'user')),
이것은 귀하의 응답을 구조화하고 재사용 할 수있게합니다.
5. 조건부 속성
조건부로 필드를 포함시키기 위해 when()
사용하십시오.
'published_at'=> $ this-> when (! empty ($ this-> published_at), $ this-> published_at), 'view'=> $ this-> shen ($ this-> resource-> relationloaded ( 'stats'), $ this-> views),
데이터가 관련이 없을 때 null
값을 보내는 것을 피합니다.
6. 최상위 응답 사용자 정의 (리소스 컬렉션)
래퍼 (예 : 메타 데이터 추가)를 사용자 정의하려면 toResponse
메소드를 무시하거나 익명 리소스 컬렉션을 사용하십시오.
예를 들어, 컨트롤러에서 :
Illuminate \ http \ resources \ json \ anonymousresourcececelection을 사용하십시오. public function index () : AnonymousResourceCollection { $ post = post :: paginate (10); postresource :: collection ($ posts)-> 추가 ([[[ '메타'=> [ 'Total_Pages'=> $ post-> lastPage (), 'current_page'=> $ post-> currentPage (), ],, ]); }
새로운 리소스 클래스를 작성하지 않고 추가 정보가 추가됩니다.
7. 모범 사례
- 성능 문제를 피하기 위해 자원에 사용 된 항상 열망하는 부하 관계 .
- 선택적 관계에
whenLoaded()
사용하십시오. - 자원 논리를 간단하게 유지하십시오 - 비즈니스 로직을 내부에 넣지 마십시오.
- 필요한 경우 다른 API 버전에 다른 리소스를 사용하십시오 (예 :
V1\PostResource
).
Laravel에서 API 리소스를 사용하면 API 응답을 예측할 수 있고 유지 관리하기 쉽습니다. 출력을 완전히 제어 할 수 있으며 Laravel은 JSON 구조 및 상태 코드를 자동으로 처리합니다.
기본적으로 모델을 리소스로 래핑하고 toArray()
메소드를 정의하고 컨트롤러에서 반환하십시오.
위 내용은 Laravel에서 API 리소스를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undress AI Tool
무료로 이미지를 벗다

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel의 구성 캐시는 모든 구성 파일을 단일 캐시 파일로 병합하여 성능을 향상시킵니다. 생산 환경에서 구성 캐시를 활성화하면 각 요청에서 I/O 운영 및 파일 구문 분석이 줄어들어 구성로드 속도를 높일 수 있습니다. 1. 응용 프로그램을 배포 할 때 활성화되어야하며 구성이 안정적이며 자주 변경되지 않아야합니다. 2. 활성화 후 구성을 수정 한 후 PhPartisAnconfig를 다시 실행해야합니다. 3. 구성 파일의 런타임 조건에 의존하는 동적 로직 또는 클로저를 사용하지 마십시오. 4. 문제 해결 문제가 발생하면 먼저 캐시를 지우고 .env 변수를 확인하고 다시 캐시해야합니다.

THETRANSLATORFACADEINLARAVELISOUDFORLOCALIDITEBETCHETTRINGSTRINGS 및 SWITCHINGLANGUAGESATRUNTIME.TOUNEST, StoretRanslationStringsInlanguageFilesunderThelangdirectory (예 : EN, ES, FR), get (get () 또는 Helperfunction, helperfunction, helperfunction

Laravel의 eloquentscopes는 로컬 범위와 글로벌 범위로 나뉘어져있는 공통 쿼리 로직을 캡슐화하는 도구입니다. 1. 로컬 범위는 스코프로 시작하는 메소드로 정의되며 Post :: published (); 2. 글로벌 범위는 모든 쿼리에 자동으로 적용되며 종종 소프트 삭제 또는 다중 테넌트 시스템에 사용되며 스코프 인터페이스를 모델에 구현하고 등록해야합니다. 3. 스코프에는 연도 또는 월별 필터링 기사와 같은 매개 변수가 장착 될 수 있으며 호출 할 때 해당 매개 변수가 전달됩니다. 4. 코드 선명도 및 재사용 성을 개선하는 데 사용할 때 명명 사양, 체인 호출, 임시 비활성화 및 조합 확장에주의하십시오.

USEMOCKERYFORCUSTOMDENCENTICESBYSETEXPINTIONSWITHSHOULDRECEIVE ()

Checkphp> = 8.1, Composer, andwebserver; 2. CloneorcreateProjectandruncomposerInstall; 3.copy.env.exampleto.envandrunphpartisankey : 생성; 4. 4. SetDatabasecredentitySin.envandRunphPartisanMigrate-Seed; 5.StartServerWithPhPartisAnserve; 6.OptionalLyRunnpmins

추천, 추천, 추천 코드 및 사용 시간을 포함하여 추천 관계를 기록 할 추천 테이블을 작성합니다. 2. 추천 데이터를 관리하기 위해 사용자 모델의 SONGSTOMONY 및 HASMANY 관계 정의; 3. 등록 할 때 고유 한 권장 코드를 생성합니다 (모델 이벤트를 통해 구현할 수 있음). 4. 등록 중 매개 변수를 쿼리하여 권장 코드를 캡처하고 확인 후 권장 관계를 설정하고 자체 권장을 방지합니다. 5. 권장 사용자가 지정된 동작 (구독 순서)을 완료하면 보상 메커니즘을 트리거합니다. 6. 공유 가능한 추천 링크를 생성하고 Laravel Signature URL을 사용하여 보안을 향상시킵니다. 7. 총 권장 사항 수 및 변환 숫자와 같은 대시 보드에 권장 통계를 표시합니다. 데이터베이스 제약, 세션 또는 쿠키가 지속되도록해야합니다.

CreateAhelpers.phpfileInapp/helperswithCustOmFunctionsikeFormatPrice, isactiveroute, andisAdmin.2.addTheFileTothe "파일"sectionOfcomposer.jsonUnderAutoLoad.3.runcomposerDump-AUTOLOADTOMAKETHINGTICTIONSGLOBELYAVAILABLE.4.USETHEHELPERFUNCUNTION

chooseafeatureflagsTrategysuchasconfig 기반, 데이터베이스-구동, Orthird-PartyTools Likeflagsmith.2.setupadatabase-drivensystembycreatingAmigrationforAfeature_flagstablewithName, enabled, andrulesfields, thenruntheMigration.3.createfeatureffillew withfilla
