lostyazilim

Php Rest Api

11 Mesajlar 2.912 Okunma
lstbozum
wmaraci reklam

ErdemKosk ErdemKosk WM Aracı Kullanıcı
  • Üyelik 20.08.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** K**
  • Mesajlar 56
  • Beğeniler 66 / 71
  • Ticaret 0, (%0)
Herkese merhaba .. Uzak sunucudaki databasimden veri alıp veri yazabileceğim bir sistem yapmak istiyorum. Mobil veya pcdeki programın uzaktan bağlanmasını istiyorum. Bunun için sanırım api yazmam gerekiyor. Bununla ilgili bir fikri olan var mı?
 

 

wmaraci
reklam

XnCN XnCN Yazılımcı Kullanıcı
  • Üyelik 30.11.2013
  • Yaş/Cinsiyet 27 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad A** H**
  • Mesajlar 447
  • Beğeniler 56 / 109
  • Ticaret 1, (%100)
post yolu ile verileri at php de veriyi işle xml yada json çıktı verdir
 

 

meteturkdonmez meteturkdonmez WM Aracı Kullanıcı
  • Üyelik 28.03.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek PHP Developer
  • Konum İstanbul Anadolu
  • Ad Soyad M** D**
  • Mesajlar 439
  • Beğeniler 11 / 45
  • Ticaret 4, (%100)
Hocam api yazmak zorunda değilsiniz, database'e bağlanırken uzak sunucu ip'sini yazarsanız direkt olarak uzak sunucudan veri çekebilir ve yazabilirsiniz.
Bir form, listeleme sayfası ve konfigürasyon dosyası ile istediğiniz uygulama yapılabilir.

NOT: php öğrenmeye başlayan arkadaşların bu tür uygulamalarla deneyim kazanmasını tavsiye ederim.
 

 

wordpressyapalim.com

eciimweb eciimweb Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 09.12.2014
  • Yaş/Cinsiyet 34 / E
  • Meslek Web Developer
  • Konum Eskişehir
  • Ad Soyad O** Ö**
  • Mesajlar 57
  • Beğeniler 3 / 3
  • Ticaret 2, (%50)
Unutmadan küçük bi not düşelim. Kullanacağınız sunucuya hangi paneli kuracaksanız Mysql Uzak Bağlantısını açmalı Allow Host kısmına belirli iplerden bağlanacaksanız o ipleri belirli bir ip değilde herhangi bi yerden bağlanacaksanız % ibaresini yazıp kaydetmeniz gerekmekte.
 

 

wmaraci
wmaraci

ErdemKosk ErdemKosk WM Aracı Kullanıcı
  • Üyelik 20.08.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** K**
  • Mesajlar 56
  • Beğeniler 66 / 71
  • Ticaret 0, (%0)

meteturkdonmez adlı üyeden alıntı

Hocam api yazmak zorunda değilsiniz, database'e bağlanırken uzak sunucu ip'sini yazarsanız direkt olarak uzak sunucudan veri çekebilir ve yazabilirsiniz.
Bir form, listeleme sayfası ve konfigürasyon dosyası ile istediğiniz uygulama yapılabilir.

NOT: php öğrenmeye başlayan arkadaşların bu tür uygulamalarla deneyim kazanmasını tavsiye ederim.


Yorumlar için teşekkürler herkese =) apiyi güvenlikli olması açısından yapmak istedim. Apk dosyasını decompile edip server şifresi vb bulabiliyorlar.Güvenliğe önem vermek için bu konuda ne gibi önlemler alınabilir?
 

 

ysnbulut ysnbulut Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 13.07.2013
  • Yaş/Cinsiyet 34 / E
  • Meslek öğrenci
  • Konum Isparta
  • Ad Soyad Y** B**
  • Mesajlar 158
  • Beğeniler 26 / 18
  • Ticaret 1, (%100)
Bencede api yapmalısın direkt mysql bağlama api ile yapki cache kısmını fln yapıp optimize edebilesin..
 

 

meteturkdonmez meteturkdonmez WM Aracı Kullanıcı
  • Üyelik 28.03.2011
  • Yaş/Cinsiyet 28 / E
  • Meslek PHP Developer
  • Konum İstanbul Anadolu
  • Ad Soyad M** D**
  • Mesajlar 439
  • Beğeniler 11 / 45
  • Ticaret 4, (%100)
Hocam bununda kolay bir yöntemi varbaşka bir sunucuda veritabanı tutacaksan yine aynı sunucuda config dosyası yaratıp onu çekebilirsin. Uygulama içinde herhangi bir bağlantı parametresi bulunmaz.
 

 

wordpressyapalim.com

ozgunlu ozgunlu WM Aracı Kullanıcı
  • Üyelik 28.01.2014
  • Yaş/Cinsiyet 33 / E
  • Meslek Bilgisayar Mühendisliği
  • Konum Ankara
  • Ad Soyad Ö** Ü**
  • Mesajlar 125
  • Beğeniler 7 / 22
  • Ticaret 0, (%0)

Erdem Köşk adlı üyeden alıntı

Yorumlar için teşekkürler herkese =) apiyi güvenlikli olması açısından yapmak istedim. Apk dosyasını decompile edip server şifresi vb bulabiliyorlar.Güvenliğe önem vermek için bu konuda ne gibi önlemler alınabilir?



REST Api' lerde güvenlik olmaz, güvenliği kendin sağlaman gerekir. Rest api sadece veriyi ordan oraya taşımana yarayacak para dolu kamyon gibi düşün, en basitinden gönderdiğin verileri encrypt etmen gerek.
 

 

ErdemKosk ErdemKosk WM Aracı Kullanıcı
  • Üyelik 20.08.2014
  • Yaş/Cinsiyet 31 / E
  • Meslek Öğrenci
  • Konum İzmir
  • Ad Soyad E** K**
  • Mesajlar 56
  • Beğeniler 66 / 71
  • Ticaret 0, (%0)

ozgunlu adlı üyeden alıntı

REST Api' lerde güvenlik olmaz, güvenliği kendin sağlaman gerekir. Rest api sadece veriyi ordan oraya taşımana yarayacak para dolu kamyon gibi düşün, en basitinden gönderdiğin verileri encrypt etmen gerek.


Konuyla ilgili bir noktada takıldım arkadaşlar yardım edebilirseniz çok sevinirim

public function getTask() {
$stmt = $this->conn->prepare("SELECT name, email, floor , number FROM shops");

if ($stmt->execute()) {
$res = array();
$stmt->bind_result($name, $email, $floor, $number);
// TODO

$stmt->fetch();
$res["name"] = $name;
$res["email"] = $email;
$res["floor"] = $floor;
$res["number"] = $number;
$stmt->close();
return $res;
} else {
return NULL;
}
}



bu şekilde bir methodum var başka yerdede bununla birlikte çekiyorum :

$response = array();

$db = new DbHandler();
// check for correct email and password
// get the user by email

$result = $db->getTask();

if ($result != NULL) {
$response["error"] = false;
$response['name'] = $result['name'];
$response['email'] = $result['email'];
$response['floor'] = $result['floor'];
$response['number'] = $result['number'];
} else {
// unknown error occurred
$response['error'] = true;
$response['message'] = "An error occurred. Please try again";
}



Ancak mesela ilk elemanı çekiyor. Ben tüm databasee verisini çekmesini istiyorum. Bunu nasıl yapabilirim

Ek Olarak:

meteturkdonmez adlı üyeden alıntı

Hocam bununda kolay bir yöntemi varbaşka bir sunucuda veritabanı tutacaksan yine aynı sunucuda config dosyası yaratıp onu çekebilirsin. Uygulama içinde herhangi bir bağlantı parametresi bulunmaz.


bunu biraz daha açıklayıcı şekilde anlatabilirseniz sevinirim hocam :)
 

 

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
getTask() sana bir result set dönüyorsa, if ile kontrol ettirdikten sonra while loop içinde dönüp bir liste içine doldurmalısınız ki liste halinde veriyi alabilesiniz.

config dosyası fikri nasıl bir fikir çözemedim ama dışarıdan config dosyasını eğer ben çekebiliyorsam, herkes çekebilir.

API yazmak en temizidir, database'e direkt erişmek olayının programatik/güvenlik ve katmansal mimarilerde oldukça kötü bir pratiktir. Uzak durmanızda fayda var.


Basit API dizaynı yazıp, göndereceğiniz isteklerin header'ına şifrelenmiş bir secretKey ve Password ile göndermek yeterli olacaktır ;)

API erişsin db'ye hatta araya bir cache server çakın gitsin her seferinde db'ye gitmekte db'yi down ettirip, kaynak tüketiminizi tavan yaptırır.

Cache içine isteklerdeki veriyi atın, daha sonraki aynı isteklerde db yerine cache'ten dönün değeri, cache olmasın diyorsanızda en güzel alternatif document base database lerdir, mongodb, couchdb gibi.

API yazmak öyle atla deve değildir. Basit bir uygulama heleki REST ise tadından yenmez. Normal websitesindeki bir sayfaya istek yapar gibi, url'e istek yapacaksınız, size veriyi işleyip geri dönecek.

Güzel ve basit bir API dizaynı örnekte mevcut. Her sınıfı API abstract sınıfından türetmiş böylelikle güvenlik olaylarını her istek içinde soyut sınıfta halletmiş, istek tipini orada halletmiş. Küçük uygulamalar için güzel bir soyutlaştırma yapılmış ;)

http://coreymaynard.com/blog/creating-a-restful-api-with-php/
ozgunlu ErdemKosk

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al