Sumber Daya API dan Respons JSON
Bentuk output JSON dengan Resource API Eloquent dan ResourceCollections.
Sumber Daya API dan Respons JSON adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.
Apa Itu Sumber Daya API?
Sumber Daya API Eloquent mengubah model dan koleksi menjadi array yang siap digunakan sebagai JSON, sehingga Anda memiliki kendali penuh atas bentuk Response API.
Membuat Sumber Daya
Buat kelas sumber daya dengan Artisan.
$ php artisan make:resource UserResource
# For collections:
$ php artisan make:resource UserCollectionSumber Daya Dasar
Timpa toArray() untuk menentukan struktur JSON.
<?php
namespace App\Http\Resources;
use Illuminate\Http\Resources\Json\JsonResource;
class UserResource extends JsonResource
{
public function toArray($request): array
{
return [
"id" => $this->id,
"name" => $this->name,
"email" => $this->email,
"created_at" => $this->created_at->toISOString(),
];
}
}Mengembalikan Sumber Daya
Kembalikan sumber daya dari pengendali — sumber daya tersebut secara otomatis membungkus model dalam kunci data.
<?php
public function show(User $user): UserResource
{
return new UserResource($user);
}
// Response: {"data": {"id": 1, "name": "Alice", ...}}Koleksi Sumber Daya
Bungkus koleksi model dengan ::collection().
<?php
public function index(): AnonymousResourceCollection
{
return UserResource::collection(User::paginate(15));
}Bidang Bersyarat
Sertakan bidang hanya jika suatu kondisi terpenuhi menggunakan when().
<?php
return [
"id" => $this->id,
"email" => $this->when($request->user()?->isAdmin(), $this->email),
"token" => $this->whenLoaded("tokens", $this->tokens->first()->plainTextToken),
];whenLoaded()
Sertakan relasi secara bersyarat hanya jika relasi tersebut sudah dimuat — ini menghindari N+1 dalam Response sumber daya.
<?php
return [
"id" => $this->id,
"posts" => PostResource::collection($this->whenLoaded("posts")),
"profile" => new ProfileResource($this->whenLoaded("profile")),
];Sumber Daya Bertingkat
Sarangankan sumber daya di dalam sumber daya lain untuk bentuk Response yang kaya dan bertipe.
<?php
return [
"id" => $this->id,
"author" => new UserResource($this->author),
"tags" => TagResource::collection($this->tags),
];Metadata Tambahan
Tambahkan metadata ke Response dengan menimpa with().
<?php
public function with($request): array
{
return [
"meta" => ["version" => "1.0"],
];
}Pembungkusan
Secara default, sumber daya dibungkus dalam kunci data. Nonaktifkan pembungkusan secara global dengan JsonResource::withoutWrapping().
<?php
// In AppServiceProvider::boot():
JsonResource::withoutWrapping();Paginasi dalam Sumber Daya
Metadata paginasi otomatis disertakan saat Anda meneruskan pemaginasi ke koleksi sumber daya.
<?php
return UserResource::collection(User::paginate(15));
// Response includes: data[], links{}, meta{}Menguji Sumber Daya
Pastikan struktur sumber daya dalam pengujian dengan assertJson() atau assertJsonStructure().
<?php
$response->assertJsonStructure([
"data" => ["id", "name", "email"]
]);Ringkasan
Sumber Daya API mengendalikan bentuk keluaran JSON Anda. Gunakan when() dan whenLoaded() untuk bidang bersyarat. Sarangkan sumber daya untuk relasi. Gunakan ::collection() untuk beberapa model.
Pemeriksaan Singkat
Metode mana yang menyertakan relasi secara bersyarat hanya jika relasi tersebut sudah dimuat?
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Sumber Daya API dan Respons JSON” gratis?
Ya — teks lengkap “Sumber Daya API dan Respons JSON” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Sumber Daya API dan Respons JSON”?
Bentuk output JSON dengan Resource API Eloquent dan ResourceCollections. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai PHP Academy?
Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Sumber Daya API dan Respons JSON” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?
Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Rute API dan Controller Sumber Daya
- Sumber Daya API dan Respons JSON
- Autentikasi dengan Laravel Sanctum
- Pembatasan Laju dan Penerapan Versi API