Tasarım Kodlama

PHP ile Basit REST API Yapımı

REST API’ler, modern web geliştirmenin bel kemiğidir. Günümüzde çoğu web uygulaması, çeşitli dillerde yazılmış backbone API‘lerine bağlı frontend single-page uygulamalar geliştirilmektedir. REST API’lerini hızlı bir şekilde oluşturmanıza yardımcı olabilecek birçok harika framework vardır.

Laravel/Lumen ve Symfony’nin API platformu, PHP ekosisteminde en sık kullanılan örneklerdir. İstekleri işlemek ve doğru HTTP durum kodlarıyla JSON yanıtları oluşturmak için harika araçlar sağlarlar. Ayrıca kimlik doğrulama/yetkilendirme, istek doğrulama, veri dönüştürme, sayfalandırma, filtreler, hız azaltma, alt kaynaklara sahip karmaşık uç noktalar ve API belgeleri gibi yaygın sorunları ele almayı da kolaylaştırırlar.

REST API için PHP Proje İskeleti Oluşturma

calisma klasöründe /src dizini ve bağımlılıkları oluşturmak için composer.json dosyasını oluşturarak başlıyoruz.

composer.json

Ayrıca /src dizininde otomatik olarak PHP sınıflarını arayacak bir PSR-4 otomatik yükleyici yapılandırdık.

Artık bağımlılıklarımızı kurabiliriz:

Terminali açıp composer bağımlılıklarını yükleyin

Bir /vendor dizini oluşturacak ve DotEnv bağımlılığı yüklenecek (otomatik yükleyici /src’den include() çağrıları olmadan sınıfları yükleyecektir).

Projeniz için içinde iki satır bulunan bir .gitignore dosyası oluşturun, böylece /vendor dizini ve yerel .env dosyası yok sayılacaktır:

.gitignore

Ardından, Gizli değişkenler için bir .env.example dosyası oluşturun:

.env

ve gerçek ayrıntılarınızı daha sonra dolduracağınız bir .env dosyası (Git tarafından yok sayılır, bu nedenle deponuzda kalmaz).

Ortam değişkenlerini yükleyen bir start.php dosyası oluşturun.

start.php

PHP REST API’niz için Veritabanını Yapılandırma

Basit API‘mizi güçlendirmek için MySQL kullanacağız. Uygulamamız için yeni bir veritabanı ve kullanıcı oluşturun:

Kullanıcı Hesapları / Kullanıcı Hesabı Ekle ile aşağıdaki gibi yeni kullanıcı ekleyin.

VERİ ve YAPI yetkilerini verip GİT komutunu uygulayın.

REST API, post tablosu için şu alanları içerecektir: id, baslik, icerik, yazar, yazar_resim,olusturma_tarih. Bu örnek kullanıcıların bloglarını Blog uygulamamızda yayınlamalarına olanak tanır.

MySQL’de veritabanı tablosunu oluşturun.

Veritabanı bağlantı değişkenlerini .env dosyanıza ekleyin:

Veritabanı bağlantılarını tutmak için bir sınıf oluşturun ve bağlantının başlatılmasını start.php dosyasına ekleyin.

src/Database.php

start.php

Post Tablosu için bir Sınıf Ekleme ve PHP REST API’sini Uygulama

Veritabanıyla nesne yönelimli bir bağlamda etkileşim kurmanın birçok yolu vardır, ancak, tüm gönderileri döndürmek, belirli bir gönderiyi döndürmek ve bir gönderi eklemek/güncellemek/silmek için yöntemleri uygulayacağınız basit bir yöntemle gidelim.

Ayrıca, frontend api/index.php tarafından işlenecek olan API uç noktaları.

Aşağıdaki uç noktalara sahip REST API:

API’ler

APICRUDTanım
GET /postsREADTüm gönderileri okur
GET /post/{id}READBelirtilen gönderiyi alır.
POST /postCREATEGönderi oluşturur
PUT /post/{id}UPDATEGönderiyi günceller
DELETE /post/{id}DELETEGönderiyi siler

api/index.php

src/Post.php

Nasıl Çalışıyor

PHP Sunucusunu başlatalım ve API’lerinizi Postman gibi bir araçla test edelim.

Postman çalıştırıp tüm post verileri için aşağıdaki sorguları çalıştırın.

Tüm post verilerini okuma

Tüm veriler aşağıdaki method ile getirildi.

Post tablosunu kayıt ekleme:

Post tablosundan Kayıt Okuma

Post güncelleme

NOT: bul(), cevapYok() ve gecersizCevap() methodlarını önceki kodlarda ekledik.

Post Silme

Yorum yap