API Kaynakları ve JSON Yanıtları
Eloquent API Resources ve ResourceCollections ile JSON çıktısının biçimini belirleyin.
API Kaynakları ve JSON Yanıtları, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
API Kaynakları Nedir?
Eloquent API Resources, modelleri ve koleksiyonları JSON'a hazır dizilere dönüştürerek API yanıtlarınızın yapısı üzerinde tam denetim sağlar.
Kaynak Oluşturma
Artisan ile bir kaynak sınıfı oluşturun.
$ php artisan make:resource UserResource
# For collections:
$ php artisan make:resource UserCollectionTemel Kaynak
JSON yapısını tanımlamak için toArray() yöntemini geçersiz kılın.
<?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(),
];
}
}Kaynak Döndürme
Kaynağı bir denetleyiciden döndürün; model otomatik olarak data anahtarına sarılır.
<?php
public function show(User $user): UserResource
{
return new UserResource($user);
}
// Response: {"data": {"id": 1, "name": "Alice", ...}}Kaynak Koleksiyonları
Bir model koleksiyonunu ::collection() ile sarın.
<?php
public function index(): AnonymousResourceCollection
{
return UserResource::collection(User::paginate(15));
}Koşullu Alanlar
Bir koşul karşılandığında bir alanı when() kullanarak dahil edin.
<?php
return [
"id" => $this->id,
"email" => $this->when($request->user()?->isAdmin(), $this->email),
"token" => $this->whenLoaded("tokens", $this->tokens->first()->plainTextToken),
];whenLoaded()
Bir ilişkiyi yalnızca daha önce yüklenmişse koşullu olarak dahil edin; bu, kaynak yanıtlarında N+1 sorununu önler.
<?php
return [
"id" => $this->id,
"posts" => PostResource::collection($this->whenLoaded("posts")),
"profile" => new ProfileResource($this->whenLoaded("profile")),
];İç İçe Kaynaklar
Zengin ve tür bilgisi içeren yanıt yapıları için kaynakları diğer kaynakların içine yerleştirin.
<?php
return [
"id" => $this->id,
"author" => new UserResource($this->author),
"tags" => TagResource::collection($this->tags),
];Ek Meta Veriler
with() yöntemini geçersiz kılarak yanıta meta veriler ekleyin.
<?php
public function with($request): array
{
return [
"meta" => ["version" => "1.0"],
];
}Sarmalama
Kaynaklar varsayılan olarak data anahtarına sarılır. JsonResource::withoutWrapping() ile sarmalamayı genel olarak devre dışı bırakın.
<?php
// In AppServiceProvider::boot():
JsonResource::withoutWrapping();Kaynaklarda Sayfalama
Bir kaynak koleksiyonuna sayfalayıcı aktardığınızda sayfalama meta verileri otomatik olarak dahil edilir.
<?php
return UserResource::collection(User::paginate(15));
// Response includes: data[], links{}, meta{}Kaynakları Test Etme
Testlerde kaynak yapısını assertJson() veya assertJsonStructure() ile doğrulayın.
<?php
$response->assertJsonStructure([
"data" => ["id", "name", "email"]
]);Özet
API Resources, JSON çıktınızın yapısını denetler. Koşullu alanlar için when() ve whenLoaded() kullanın. İlişkiler için kaynakları iç içe yerleştirin. Birden çok model için ::collection() kullanın.
Hızlı Kontrol
Bir ilişkiyi yalnızca daha önce yüklenmişse koşullu olarak hangi yöntem dahil eder?
Sıkça Sorulan Sorular
“API Kaynakları ve JSON Yanıtları” dersi ücretsiz mi?
Evet — “API Kaynakları ve JSON Yanıtları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“API Kaynakları ve JSON Yanıtları” dersinde ne öğreneceğim?
Eloquent API Resources ve ResourceCollections ile JSON çıktısının biçimini belirleyin. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.
“API Kaynakları ve JSON Yanıtları” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- API Rotaları ve Kaynak Denetleyicileri
- API Kaynakları ve JSON Yanıtları
- Laravel Sanctum ile Kimlik Doğrulama
- İstek Sınırlama ve API Sürümleme