Tartışma

PHP ile JSON API Hazırlama

Başlatan IronSpecter · 09 Tem 2026 13:46 · 19 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
PHP ile JSON API Hazırlama

Şimdi arkadaşlar, malumunuz, günümüzde neredeyse her uygulamanın birbiriyle konuşması gerekiyor. Mobil uygulamalar, ön yüz JavaScript framework'leri (React, Vue, Angular), hatta başka arka uç servisleri... Hepsi bir şekilde veri alışverişi yapıyor. Bu noktada da JSON tabanlı API'ler hayatımızın vazgeçilmezi haline geldi. Peki, bu işi PHP ile nasıl sağlam, temiz ve performanslı bir şekilde yaparız? Gelin, detaylara inelim.

Her şeyden önce, bir API'nin ne olduğunu ve neden JSON kullandığımızı netleştirmek lazım. API (Application Programming Interface), adından da anlaşılacağı gibi, farklı yazılım bileşenlerinin birbiriyle iletişim kurmasını sağlayan bir arayüzdür. Bizim konumuzda bu genellikle HTTP protokolü üzerinden gerçekleşen istekler ve yanıtlar şeklinde oluyor. JSON (JavaScript Object Notation) ise bu veri alışverişi için kullanılan hafif, okunabilir ve dilden bağımsız bir veri formatı. Neden PHP mi? PHP, web sunucularında yıllardır kendini kanıtlamış, hızlı geliştirme imkanı sunan, geniş bir ekosisteme sahip bir dil. Özellikle hızlı prototipleme ve orta ölçekli projeler için biçilmiş kaftan diyebilirim. Hani "PHP öldü" diyenler oluyor ya, bence onlar son sürümleri hiç görmedi...

Temel API Tasarım İlkeleri: RESTful Yaklaşım

Bir API tasarlarken en önemli şeylerden biri, tutarlı ve anlaşılır bir yapı kurmak. Genellikle "RESTful" prensipleri dediğimiz bir yaklaşımla ilerleriz. REST (Representational State Transfer), bir mimari stilidir, bir standart değil. Temel amacı, web servislerinin ölçeklenebilirliğini ve ayrık yapısını artırmak. Peki, bu ne demek oluyor?

  • Kaynak Odaklılık: Her şey bir kaynak olarak düşünülmeli. Örneğin, kullanıcılar (/users), ürünler (/products), siparişler (/orders). Bu kaynaklara erişim için URL'ler kullanırız.
  • HTTP Metotları: Kaynaklar üzerinde hangi işlemi yapacağımızı HTTP metotları (GET, POST, PUT, DELETE) ile belirtiriz.
    • GET: Bir veya birden fazla kaynağı çekmek için. (Okuma işlemi)
    • POST: Yeni bir kaynak oluşturmak için. (Yazma işlemi)
    • PUT: Mevcut bir kaynağı tamamen güncellemek veya yoksa oluşturmak için. (Tüm verinin gönderilmesi beklenir)
    • PATCH: Mevcut bir kaynağın kısmi olarak güncellemek için. (Sadece değişen alanların gönderilmesi beklenir)
    • DELETE: Bir kaynağı silmek için.
  • Durum Kodları: Her yanıtta, işlemin başarılı olup olmadığını veya bir hata oluşup oluşmadığını belirten standart HTTP durum kodları (200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal Server Error vb.) kullanırız. Bu, istemcinin yanıtı doğru bir şekilde yorumlaması için kritik.
  • Stateless (Durumsuzluk): Her istek bağımsızdır. Sunucu, istemcinin önceki isteklerine dair herhangi bir bilgiyi saklamaz. İstemci, her istekte sunucunun işlemi tamamlaması için gerekli tüm bilgiyi göndermelidir. Bu, API'nin ölçeklenebilirliğini artırır.

Bu prensiplere bağlı kalmak, API'nizi kullanan geliştiricilerin işini kolaylaştırır ve API'nizin daha sürdürülebilir olmasını sağlar.

Geliştirme Ortamı ve Temel Yapılandırma

Bir PHP JSON API'si geliştirmek için öncelikle bir web sunucusuna (Apache veya Nginx), PHP yorumlayıcısına ve bir veritabanına (MySQL, PostgreSQL vb.) ihtiyacımız var. XAMPP, WAMP veya Docker gibi araçlarla bu ortamı hızlıca kurabilirsiniz. Ben genellikle Docker kullanmayı tercih ediyorum, daha izole ve taşınabilir oluyor.

Şimdi gelelim PHP tarafına... Boş bir proje klasörü oluşturup içine bir index.php dosyası koyarak başlayabiliriz. Modern PHP geliştirme pratiklerinde, genellikle Composer ile bağımlılık yönetimi yaparız ve bir framework (Laravel, Symfony, Slim, Lumen vb.) kullanırız. Ancak bu yazı, temel prensiplere odaklanacağı için saf PHP ile nasıl yapıldığını göstereceğim. Tabii ki gerçek bir projede bir framework kullanmak size hız ve güvenlik avantajları sağlayacaktır.

İstekleri Yönetme ve Yönlendirme (Routing)

Bir API'nin kalbi, gelen isteği doğru işleyiciye yönlendirme yeteneğidir. Bu işleme routing (yönlendirme) deriz. Gelen HTTP metodu ve URL'ye göre hangi PHP fonksiyonunun veya sınıf metodunun çalışacağına karar veririz.

Basit bir örnekle başlayalım:

[code]

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi