Tartışma

PHP ile XML API Oluşturma

Başlatan DarkProtocol · 09 Tem 2026 14:11 · 22 Görüntülenme · 0 Yanıtlar
Konuyu Açan #0
Bir süredir forumda daha çok RESTful ve JSON tabanlı API geliştirmelerinden bahsediyoruz, ki bu oldukça doğal. Modern web uygulamalarının çoğu bu yapıyı tercih ediyor. Ancak, XML tabanlı API'lerin hala önemli bir yeri var. Özellikle eski sistemlerle entegrasyon, belirli endüstri standartları gereksinimleri veya şema doğrulamasının kritik olduğu veri alışverişleri söz konusu olduğunda, XML vazgeçilmez olabiliyor. Bugün, PHP kullanarak baştan sona bir XML API'si nasıl oluşturulur, temel adımları ve dikkat edilmesi gerekenleri detaylıca ele alalım istiyorum.

Neden Hala XML API?

Şimdi, "JSON varken neden XML?" diye düşünenleriniz olabilir. Haklısınız, JSON genellikle daha hafif ve tarayıcı tabanlı uygulamalar için daha pratik. Ancak XML'in kendine has avantajları var:

  • Şema Doğrulama (Schema Validation): XML Schema Definition (XSD) ile verinizin yapısını katı kurallara bağlayabilirsiniz. Bu, özellikle finans, sağlık veya devlet kurumları gibi belirli standartlara uymanız gereken sektörlerde hayati önem taşır. Gelen veya giden verinin beklenen formatta olup olmadığını garanti altına alırız.
  • Genişletilebilirlik ve Esneklik: XML, hiyerarşik yapısıyla karmaşık veri modellerini doğal bir şekilde temsil edebilir. Yeni alanlar eklemek veya mevcut yapıyı değiştirmek genellikle daha esnektir.
  • Mevcut Sistemler: Birçok eski sistem veya kurumsal yazılım, veri alışverişi için hala XML'i kullanır. Bu durumda, yeni bir entegrasyon geliştirirken XML API oluşturmak kaçınılmaz hale gelir.
  • İnsan Okunabilirliği: Etiketler sayesinde XML, yapısal olarak JSON'dan daha fazla bilgi içerdiğinden, bazen daha kolay okunabilir bulunabilir.

Bu nedenlerden dolayı, PHP ile güçlü bir XML API oluşturma yeteneğine sahip olmak, geliştirici araç kutumuzda değerli bir yetenek olmaya devam ediyor.

API Tasarımına Giriş ve Endpointler

Her API'de olduğu gibi, XML API'mizi tasarlarken de belirli prensiplere sadık kalmalıyız. RESTful prensipler, kaynağa yönelik (resource-oriented) bir yapı sunarak API'mizi anlaşılır ve yönetilebilir kılar.

Kaynaklar ve Yollar (Endpoints): API'nizin hangi verilere erişim sağlayacağını ve bu verilere nasıl ulaşılacağını belirlemekle işe başlarız. Örneğin, bir ürün kataloğu API'si için:

  • /products: Tüm ürünleri listelemek için. (GET)
  • /products/{id}: Belirli bir ürünü detaylarıyla görüntülemek için. (GET)
  • /products: Yeni bir ürün eklemek için. (POST)
  • /products/{id}: Mevcut bir ürünü güncellemek veya silmek için. (PUT/DELETE - ama basit bir örnek için GET/POST odaklanalım.)

HTTP Metotları: İsteklerin amacını belirlemek için standart HTTP metotlarını kullanırız.
  • GET: Sunucudan veri almak için kullanılır. Veritabanında herhangi bir değişiklik yapmamalıdır.
  • POST: Sunucuya yeni veri göndermek (kaynak oluşturmak) için kullanılır.
  • PUT: Mevcut bir kaynağı tamamen güncellemek için kullanılır.
  • DELETE: Bir kaynağı sunucudan silmek için kullanılır.

Basit bir örnek API için, bir veritabanından ürün bilgilerini çekecek ve XML olarak sunacak bir yapı oluşturalım.

Veritabanı Entegrasyonu (Çok Basit Bir Örnek)

Örneğimizde, basit bir products (ürünler) tablosu olduğunu varsayalım:

CODE
12345678910111213
CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    description TEXT,
    price DECIMAL(10, 2) NOT NULL,
    stock INT NOT NULL DEFAULT 0
);

INSERT INTO products (name, description, price, stock) VALUES
('Akıllı Telefon X', 'Yüksek performanslı akıllı telefon.', 999.99, 50),
('Dizüstü Bilgisayar Y', 'İnce ve hafif dizüstü bilgisayar.', 1499.00, 30),
('Kablosuz Kulaklık Z', 'Gürültü önleyici özellikli kulaklık.', 199.50, 120);


PHP ile bu veritabanına bağlanıp veri çekmek için basit bir PDO bağlantısı kullanacağız. Güvenlik ve hata yönetimi daha kapsamlı bir konu olsa da, örneğimiz için temel bir bağlantı yeterli olacaktır.

PHP ile XML Yanıt Oluşturma: DOMDocument Kullanımı

PHP'de XML oluşturmanın birkaç yolu var. SimpleXMLElement daha basit yapılar için hızlı ve kolaydır, ancak DOMDocument çok daha fazla kontrol ve karmaşık yapılar, özellikle de XSD doğrulama gibi gelişmiş özellikler için idealdir. Bizim örneğimizde, esnekliği nedeniyle DOMDocument'i tercih edelim.

İlk olarak, API'mizin tüm ürünleri listeleyen /products endpoint'ini düşünelim.

CODE
12



Burada önemli olan, ID'nin varlığını ve geçerliliğini kontrol etmemiz ve uygun HTTP durum kodlarını döndürmemiz. Ürün bulunamazsa 404 Not Found, geçersiz ID gelirse 400 Bad Request döndürüyoruz. Bu, API'nizin kullanıcıları için çok daha bilgilendirici olur.

Veri Ekleme/Güncelleme: POST Metodu ve XML İsteklerini Ayrıştırma

Yeni bir ürün eklemek veya mevcut bir ürünü güncellemek için POST (veya PUT) metotlarını kullanırız. Bu durumda istemci, XML formatında veri gönderecektir. Bu XML verisini PHP tarafında nasıl okuyup ayrıştıracağımıza bakalım.

İstemcinin göndereceği XML şöyle bir şey olabilir:
CODE
1234567

    Yeni Akıllı Saat
    Su geçirmez, kalp atış hızı ölçer.
    249.99
    75



PHP'de bu veriyi php://input akışından okuyabilir ve simplexml_load_string() ile kolayca ayrıştırabiliriz.

[code]

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

0 alıntı seçildi