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]
ParametreZorunluAçıklama
tipEvetstandart veya switch-case
yol/dosya-adiEvetAPI 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.