RESTful API (Representational State Transfer) uygulama programlama arayüzleri, web uygulamaları arasında veri alışverişi yapmayı kolaylaştıran bir yöntemdir. PHP, RESTful API oluşturmak için güçlü bir seçenektir. Bu yazıda, PHP ile basit bir RESTful API oluşturma sürecini adım adım inceleyeceğiz.
1. Gerekli Ortamın Hazırlanması
RESTful API geliştirmek için öncelikle bir PHP ortamına ihtiyacınız var. PHP'nin yüklü olduğu bir sunucu (XAMPP, WAMP veya bir bulut sunucusu gibi) kullanıyorsanız, işleme başlayabilirsiniz.
Ayrıca bir veritabanı kullanacağız. MySQL, yaygın bir tercih olduğundan, onu kullanacağız.
2. Veritabanını Oluşturma
Aşağıdaki SQL sorgusu ile basit bir "books" tablosu oluşturalım:
Kod:
CREATE TABLE books (
id INT(11) AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
published_date DATE NOT NULL
);3. Proje Klasör Yapısı
Proje dosyalarınızı düzenli tutmak için aşağıdaki klasör yapısını oluşturalım:
- /my_api
- /config
- /public
- /src
- **/config**: API ayarları ve veritabanı bağlantısı için.
- **/public**: API'yi çağırmak için kullanılacak dosyalar.
- **/src**: API'nin asıl kodları için.
4. Veritabanı Bağlantısı
`/config/db.php` dosyasını oluşturarak veritabanı bağlantısını sağlayalım:
Kod:
<?php
$host = 'localhost';
$dbname = 'my_database';
$username = 'root';
$password = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
?>`/src/api.php` dosyasını oluşturup aşağıdaki kodu ekleyelim:
Kod:
<?php
require '../config/db.php';
header('Content-Type: application/json');
$request_method = $_SERVER['REQUEST_METHOD'];
switch($request_method) {
case 'GET':
if (!empty($_GET['id'])) {
$id = intval($_GET['id']);
$stmt = $pdo->prepare("SELECT * FROM books WHERE id = ?");
$stmt->execute([$id]);
$book = $stmt->fetch(PDO::FETCH_ASSOC);
echo json_encode($book);
} else {
$stmt = $pdo->query("SELECT * FROM books");
$books = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($books);
}
break;
case 'POST':
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("INSERT INTO books (title, author, published_date) VALUES (?, ?, ?)");
$stmt->execute([$data['title'], $data['author'], $data['published_date']]);
echo json_encode(['message' => 'Book added successfully.']);
break;
case 'PUT':
$data = json_decode(file_get_contents('php://input'), true);
$stmt = $pdo->prepare("UPDATE books SET title = ?, author = ?, published_date = ? WHERE id = ?");
$stmt->execute([$data['title'], $data['author'], $data['published_date'], $data['id']]);
echo json_encode(['message' => 'Book updated successfully.']);
break;
case 'DELETE':
$id = intval($_GET['id']);
$stmt = $pdo->prepare("DELETE FROM books WHERE id = ?");
$stmt->execute([$id]);
echo json_encode(['message' => 'Book deleted successfully.']);
break;
default:
http_response_code(405);
echo json_encode(['message' => 'Method Not Allowed']);
break;
}
?>API'nizi test etmek için Postman gibi bir araç kullanabilirsiniz. Farklı HTTP metodlarını kullanarak verilerinizi ekleyebilir, güncelleyebilir veya silebilirsiniz.
- **GET**: `/my_api/src/api.php` (tüm kitapları listeleme)
- **POST**: `/my_api/src/api.php` (yeni bir kitap ekleme)
- **PUT**: `/my_api/src/api.php?id=ID` (kitap güncelleme)
- **DELETE**: `/my_api/src/api.php?id=ID` (kitap silme)
Bu adım adım kılavuz ile PHP kullanarak basit bir RESTful API oluşturmuş olduk. Gelişmiş özellikler eklemek için güvenlik, hata yönetimi ve kimlik doğrulama gibi konuları da göz önünde bulundurmalısınız. Unutmayın, bir API oluştururken en önemli nokta verilerin güvende olduğundan ve doğru şekilde işlendiğinden emin olmaktır.
Umarız bu içerik, PHP ile RESTful API oluşturma sürecinde size yardımcı olmuştur!
)

