PHP ile API Geliştirme: Sıfırdan Gerçek Uygulamaya

Bölüm 1: API Nedir? PHP’de API Mantığı API, yani Application Programming Interface (Uygulama Programlama Arayüzü), farklı yazılımların birbirleriyle iletişim kurmasını sağlayan bir köprüdür.Bir API, sanki bir garson gibidir: Bir uygulama (müşteri) istediği veriyi sipariş eder, API (garson) bunu sunucudan alır ve geri iletir. PHP ile API geliştirmek, web uygulamaları, mobil uygulamalar ve hatta IoT cihazları

Google News Google News Flipboard Flipboard Sesli oku Yazıyı beğen Favorilere Ekle 0 Yorumlar
Daha fazla

Bölüm 1: API Nedir? PHP’de API Mantığı

API, yani Application Programming Interface (Uygulama Programlama Arayüzü), farklı yazılımların birbirleriyle iletişim kurmasını sağlayan bir köprüdür.
Bir API, sanki bir garson gibidir: Bir uygulama (müşteri) istediği veriyi sipariş eder, API (garson) bunu sunucudan alır ve geri iletir.

PHP ile API geliştirmek, web uygulamaları, mobil uygulamalar ve hatta IoT cihazları için veri paylaşmanın temel yoludur.


🎯 Temel Kavramlar:

  1. Endpoint: API’nin dış dünyaya açılan kapısıdır.
    Örnek: https://site.com/api/users

  2. Request: Kullanıcı veya uygulamanın API’ye gönderdiği veri.
    Örnek: GET, POST, PUT, DELETE

  3. Response: API’den geri dönen veri. Genellikle JSON formatındadır.

  4. Status Code: API’nin işlemin sonucunu belirtir.

    • 200: Başarılı

    • 400: Hatalı istek

    • 401: Yetkisiz

    • 500: Sunucu hatası


🧠 PHP’de Basit Örnek

header('Content-Type: application/json');

$data = ["message" => "Merhaba, MayKairos!"];
echo json_encode($data);

Bu kadar basit bir API endpointi, JSON formatında cevap döndürür.


💬 Benim Düşüncem:

API, bence yazılımın görünmez kahramanıdır.
Web veya mobil uygulama için arka planın bel kemiğini oluşturur.
PHP ile API yazmak, hem öğrenmesi kolay hem de gerçek dünya projelerine hemen uyarlanabilir bir beceridir.


Bölüm 2: RESTful API Kavramı ve Temel Kurallar

REST (Representational State Transfer), modern web API’lerinin standart yaklaşımıdır.

🔹 REST Kuralları:

  1. Stateless: Sunucu, her isteği bağımsız kabul eder.

  2. Client-Server: İstemci ve sunucu ayrı çalışır.

  3. Uniform Interface: Tek tip veri formatı (çoğunlukla JSON)

  4. HTTP Methods: GET, POST, PUT, DELETE kullanılır

  5. Resource-Oriented: Veri “kaynak” olarak ele alınır.

Örnek bir RESTful endpoint:

GET /api/users -> Kullanıcıları listele
POST /api/users -> Yeni kullanıcı ekle
GET /api/users/1 -> ID’si 1 olan kullanıcıyı getir
PUT /api/users/1 -> ID 1 kullanıcıyı güncelle
DELETE /api/users/1 -> ID 1 kullanıcıyı sil

💬 Benim Düşüncem:

RESTful API’ler, düzenli ve ölçeklenebilir projelerin temelidir.
Her yeni proje başlarken, REST prensiplerini anlamadan adım atmamak lazım.


Bölüm 3: PHP ile Basit API Oluşturma

PHP ile basit bir API oluşturmak için sadece birkaç dosya yeterlidir.

Örnek Klasör Yapısı:

api/
├─ index.php
├─ users.php
├─ db.php

db.php

<?php
$conn = new mysqli("localhost","root","","testdb");
if($conn->connect_error){
die("Bağlantı Hatası: " . $conn->connect_error);
}
?>

users.php

<?php
header('Content-Type: application/json');
include 'db.php';

$result = $conn->query("SELECT * FROM users");
$users = [];
while($row = $result->fetch_assoc()){
$users[] = $row;
}

echo json_encode($users);
?>

index.php

<?php
include 'users.php';

Tarayıcıya http://localhost/api/index.php yazdığında JSON veri dönecektir.


💬 Benim Düşüncem:

Basit bir API bu kadar kolay!
Bence yeni başlayanlar, önce bu tarz “mini API” projeleriyle deneyim kazanmalı.
Framework kullanmadan önce, temel mantığı anlamak çok kritik.


Bölüm 4: Veri Tabanı Bağlantısı ve CRUD İşlemleri

API’nin asıl gücü, veri tabanıyla etkileşim kurabilmesindedir.

CRUD İşlemleri:

  • Create: Veri ekleme

  • Read: Veri okuma

  • Update: Veri güncelleme

  • Delete: Veri silme

PHP Örnek (PDO ile güvenli CRUD):

$dsn = "mysql:host=localhost;dbname=testdb";
$pdo = new PDO($dsn, "root", "");

$stmt = $pdo->prepare("SELECT * FROM users");
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

echo json_encode($users);


💬 Benim Düşüncem:

CRUD, API’nin temelidir.
Veriyi okuyamıyorsan, manipüle edemiyorsan API’nin anlamı yok.
PDO kullanmak hem güvenlik hem de performans açısından şart.

Bölüm 5: JSON Formatı ve PHP ile JSON Yönetimi

API’lerde veri iletimi için en yaygın format JSON’dur (JavaScript Object Notation).
JSON, hem insanın okuyabileceği hem de makinelerin anlayabileceği bir veri formatıdır.

🔹 JSON Örnek:

{
"id": 1,
"name": "Mehmet Ali",
"email": "mehmetali@example.com"
}

PHP ile JSON İşleme:

header('Content-Type: application/json');

$data = ["id" => 1, "name" => "Mehmet Ali"];
echo json_encode($data);

💬 Benim Düşüncem:

JSON, API dünyasının kalbidir.
Veriyi doğru formatta göndermek ve almak, uygulamanın çalışmasını doğrudan etkiler.


Bölüm 6: Authentication – JWT ve Token Sistemi

API’lerin güvenliği kritik önemdedir.
Her kullanıcının yetkili olup olmadığını kontrol etmek için Token veya JWT (JSON Web Token) kullanılır.

🔹 JWT Örnek:

use \Firebase\JWT\JWT;

$payload = [
"iss" => "http://maykairos.com",
"iat" => time(),
"exp" => time() + 3600,
"userId" => 1
];

$jwt = JWT::encode($payload, "SECRET_KEY");
echo $jwt;

API’ye istek atıldığında, token doğrulandıktan sonra veri gönderilir.

💬 Benim Düşüncem:

Token olmadan API, güvenli bir evsiz gibidir.
JWT kullanmak, hem güvenlik sağlar hem de kullanıcı bazlı özelleştirme imkânı verir.


Bölüm 7: Hata Yönetimi ve API Güvenliği

🔹 Hata Yönetimi:

try {
$stmt = $pdo->prepare("SELECT * FROM users WHERE id=?");
$stmt->execute([$id]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if(!$user){
http_response_code(404);
echo json_encode(["error" => "Kullanıcı bulunamadı"]);
}
} catch (Exception $e){
http_response_code(500);
echo json_encode(["error" => $e->getMessage()]);
}

🔹 Güvenlik Önlemleri:

  • SQL Injection önlemek için Prepared Statements kullan

  • HTTPS ile veri aktar

  • CORS yapılandırmasını düzgün yap

💬 Benim Düşüncem:

Güvenlik ve hata yönetimi, API’nin görünmez ama en kritik kısmıdır.
Kod yazarken “ya birisi hacklerse” düşünmek şart.


Bölüm 8: Performans Optimizasyonu ve Cache Kullanımı

API performansı kullanıcı deneyimini doğrudan etkiler.

🔹 İpuçları:

  • Sorguları optimize et

  • Gereksiz veri göndermemeye dikkat et

  • Redis veya Memcached ile cache kullan

  • Lazy loading yerine eager loading tercih et

💬 Benim Düşüncem:

Hız, kullanıcı kaybettirmez ama sabrı test eder.
Performans iyi ayarlanmazsa, en güzel API bile çöker.


Bölüm 9: Gerçek Proje – Blog API Uygulaması

Örnek proje: Basit bir blog API’si

  • Endpoint: /api/posts

  • CRUD: Post ekleme, listeleme, güncelleme, silme

  • JSON veri formatı

  • Token ile kullanıcı doğrulama

🔹 Basit Endpoint Örneği:

$router->get('/api/posts', function() use ($pdo){
$stmt = $pdo->query("SELECT * FROM posts");
$posts = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($posts);
});

Bu yapı, bir blog sisteminin temel iskeletini oluşturur.

💬 Benim Düşüncem:

Gerçek proje yapmak, teoriyi pratiğe dökmektir.
Kod yazmak kadar, sistemi planlamak ve yönetmek de önemlidir.


Bölüm 10: Sonuç – PHP API Dünyasında Zirveye Ulaşmak

PHP ile API geliştirmek, modern web ve mobil uygulamalar için kritik bir beceridir.
RESTful prensipleri, JSON kullanımı, güvenlik ve performans optimizasyonları, başarılı bir API için olmazsa olmazdır.

Framework kullanmak, CRUD ve authentication sistemlerini iyi anlamak, ve gerçek bir proje geliştirmek PHP API konusunda uzman olmanı sağlar.

💬 Benim Düşüncem:

API geliştirmek, bence PHP’nin en keyifli tarafıdır.
Basit bir endpoint’ten büyük bir sistemin veri aktarımına kadar her aşama, yazılım mantığını ve problem çözme becerisini güçlendirir.
PHP API öğrenmek, gelecekte her türlü backend projesine hazır olmanın garantisidir.

Yazar Hakkında

Benzer Yazılar

Bir Cevap Yaz

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir.

0/30 karakter