PDA

Orijinalini görmek için tıklayınız : PHP ile API Sistemi Yapmak


tcelenkk
05-30-2014, 11:49 PM
PHP ile API Sistemi Oluşturmak

API Nasıl Çalışır ?

Hemen bir örnek ile başlamak gerekirse aşağıdaki link yapısıyla dinamik sitelerden veri çekmeye yarayan bir sistemdir API.

[Linkleri Sadece Kayıtlı Üyeler Görebilir!]

Değerleri açıklayayım:

api.php: API sayfamızın adı. Genelde api.php olduğu için örnekte de bu şekilde verdim.

kullaniciAdi: API sayfasına gönderilen parametre adı.

tamer: API sayfasına gönderilen kullaniciAdi parametresine atanan değer.

Bir Veritabanı Oluşturalım

Sistemde kullanmak için kullanacağımız veritabanı yapısı aşağıdaki gibidir. apiDeneme adında bir veritabanı oluşturup aşağıdaki SQL i okutalım.

CREATE TABLE `uyelertbl` (
`uye_id` int(11) NOT NULL auto_increment,
`uye_adi` varchar(100) NOT NULL,
`uye_soyadi` varchar(100) NOT NULL,
`uye_kullanici_adi` varchar(100) NOT NULL,
`uye_mail` varchar(200) NOT NULL,
`uye_sifre` varchar(100) NOT NULL,
`uye_avatar_url` varchar(200) NOT NULL,
PRIMARY KEY (`uye_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

ve bir satır kayıt girdisi yapalım.

INSERT INTO `apiDeneme`.`uyelertbl` (`uye_id` ,`uye_adi` ,`uye_soyadi` ,`uye_kullanici_adi` ,`uye_mail` ,`uye_sifre` ,`uye_avatar_url`) VALUES (NULL , 'Tamer', 'Çelenk', 'tamer', '[email protected]', '123456', '[Linkleri Sadece Kayıtlı Üyeler Görebilir!]');
Basit Bir API Sayfası Oluşturalım

Üstteki örnek link yapısını çalıştıracak bir API sistemi oluşturalım. Öncelikle MySQL e bağlanalım.

$baglanti = mysql_connect("localhost", "root", "0000") or die (mysql_error());
$veritabaniSec = mysql_select_db("apiDeneme", $baglanti) or die (mysql_error());

MySQL bağlantımız sağlandıktan sonra parametre ile gönderilen değeri bir değişkene atayalım.

$gelenKullaniciAdi = htmlspecialchars($_GET['kullaniciAdi']);

Artık parametre ile gönderilen tamer değerini tüm api.php sayfasında kullanabiliriz.

Şimdi yapmamız gereken şey üye ile ilgili id, adı, soyadı, kullanıcı adı, mail, avatar gibi değerleri JSON tipiyle ekrana basalım. Öncelikle sorgumuzu yazalım.

$sorgu = mysql_query("SELECT * FROM uyelerTbl WHERE uye_kullanici_adi = '$gelenKullaniciAdi'");

Eğer etkilenen satır var ise dönen değerleri ekrana JSON ile yazalım, etkilenen satır yok ise Kullanıcı Bulunamadı ! şeklinde bir hata verdirelim.

if (mysql_affected_rows()){
$rows = mysql_fetch_array($sorgu);
print json_encode(array(
'id' => $rows['id'],
'adi' => $rows['uye_adi'],
'soyadi' => $rows['uye_soyadi'],
'kullanciadi' => $rows['uye_kullanici_adi'],
'mail' => $rows['uye_mail'],
'avatar' => $rows['uye_avatar_url']
));
} else {
print "Kullanıcı Bulunamadı !";
}

Türkçe karakter sorunumuz olabilir, bunun için de sayfanın en başına;

header('Content-Type: text/html; charset=utf-8');

kodunu ekleyelim.

Son olarak tüm kodlarımıza bir arada göz atalım.

<?php

header('Content-Type: text/html; charset=utf-8');

$baglanti = mysql_connect("localhost", "root", "0000") or die (mysql_error());
$veritabaniSec = mysql_select_db("apiDeneme", $baglanti) or die (mysql_error());

$gelenKullaniciAdi = htmlspecialchars($_GET['kullaniciAdi']);

$sorgu = mysql_query("SELECT * FROM uyelerTbl WHERE uye_kullanici_adi = '$gelenKullaniciAdi'");

if (mysql_affected_rows()){
$rows = mysql_fetch_array($sorgu);
print json_encode(array(
'id' => $rows['id'],
'adi' => $rows['uye_adi'],
'soyadi' => $rows['uye_soyadi'],
'kullanciadi' => $rows['uye_kullanici_adi'],
'mail' => $rows['uye_mail'],
'avatar' => $rows['uye_avatar_url']
));
} else {
print "Kullanıcı Bulunamadı !";
}

?>


Artık [Linkleri Sadece Kayıtlı Üyeler Görebilir!] adresini ziyaret ettiğimizde aşağıdaki gibi bir çıktı karşımıza çıkacak.

{"id":null,"adi":"Tamer","soyadi":"Celenk","kullanciadi":"tamer","mail":"[email protected]","avatar":"[Linkleri Sadece Kayıtlı Üyeler Görebilir!]"}

Bir sonraki makalemde burada elde ettiğimiz JSON çıktısını farklı bir sayfada nasıl görebiliriz onu açıklayacağım.

İyi forumlar.

manlyak
05-31-2014, 10:00 PM
Güzel paylaşım. Teşekkür ederim :)

belekkafa
06-06-2014, 04:06 PM
%100 yararlı cok teşekkürler