artiframe make:api
artiframe make:api komutu, projenize yeni bir JSON API uç noktası (endpoint) ekler.
İki farklı API mimarisi sunar: standart (tek amaçlı) ve switch-case (çok amaçlı CRUD).
Oluşturulan dosyalar ArtiFrame'in güvenlik katmanını (ApiControl.php) ve CSRF korumalarını baştan içerir.
Kullanım
$ artiframe make:api [tip] [yol/dosya-adi]
| Parametre | Zorunlu | Açıklama |
|---|---|---|
tip | Evet | standart veya switch-case |
yol/dosya-adi | Evet | API dosyasının hedef yolu (uzantısız yazılabilir) |
API Tipleri
1. standart — Tek Amaçlı Endpoint
Tek bir işlemi gerçekleştiren uç noktalar için kullanılır. Dosya public/api/standart/ altına oluşturulur.
$ artiframe make:api standart user/update-profile
# Oluşturulan dosya: public/api/standart/user/update-profile.php
Oluşturulan dosya içeriği:
<?php
// İzin verilen HTTP metodları
$allowedMethods = ['POST'];
require_once $_SERVER['DOCUMENT_ROOT'] . '/../app/ApiControl.php';
use Bin\SystemMethod;
// API İş Mantığı (Business Logic) Başlangıcı
// ...
jsonResponse(['status' => 'success', 'message' => 'İşlem başarılı.'], 200);
2. switch-case — Çok Amaçlı CRUD Endpoint
Tek bir dosyada birden fazla işlemi (create, update, delete…) yöneten uç noktalar için kullanılır. Dosya public/api/switch-case/ altına oluşturulur.
$ artiframe make:api switch-case products
# Oluşturulan dosya: public/api/switch-case/products.php
Oluşturulan dosya içeriği:
<?php
$allowedMethods = ['POST'];
require_once $_SERVER['DOCUMENT_ROOT'] . '/../app/ApiControl.php';
use Bin\SystemMethod;
$action = stripHtml($_POST['action'] ?? '');
switch ($action) {
case 'create':
// TODO: Oluşturma işlemleri
jsonResponse(['status' => 'success', 'message' => 'Başarıyla oluşturuldu.'], 200);
break;
case 'update':
// TODO: Güncelleme işlemleri
jsonResponse(['status' => 'success', 'message' => 'Başarıyla güncellendi.'], 200);
break;
case 'delete':
// TODO: Silme işlemleri
jsonResponse(['status' => 'success', 'message' => 'Başarıyla silindi.'], 200);
break;
default:
jsonResponse(['status' => 'error', 'message' => 'Geçersiz veya eksik action parametresi.'], 400);
break;
}
Frontend'den Nasıl Çağrılır?
ArtiFrame API'leri her zaman POST metodu ve JSON yanıtı döner. View JS dosyasındaki şablona uygun olarak çağrılır:
// switch-case endpoint örneği
fetch('/api/switch-case/products', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'X-CSRF-TOKEN': csrfToken
},
body: JSON.stringify({ action: 'create', name: 'Ürün Adı' })
})
.then(res => res.json())
.then(data => console.log(data));
auth/ Özel Davranışı
Hedef yol auth ile başlıyorsa (örn: make:api standart auth/login), sistem auth-api-standart.stub veya auth-api-switch-case.stub şablonunu kullanır.
Bu şablonlar session kontrolü ve kimlik doğrulamaya özgü iş mantığı iskeletini içerir.