Restful Kütüphanesi
"Dinamik bir kütüphaneyi tanımlarken sınıf isminin başına Internal ön eki getirirerek statik erişimli hale getirebilirsiniz. "
REST (Temsilî Durum Aktarımı - Representational state transfer), Web protokolleri ve teknolojilerini kullanan bir dağıtık sistemdir. REST prensiplerini sağlayan sistemler, RESTful olarak sıfatlandırılır. Temsilî Durum Aktarımı ismindeki temsilî, verinin temsilini kastetmekte olup onunla ilgili durumun aktarılması olarak düşünülebilir.
2000 yılında HTTP spesifikasyonunun yazarlarından biri olan Roy Fielding tarafından doktora tezinin bir parçası olarak geliştirilmiştir.
SOAP ve WSDL tabanlı Web servislerine spesifikasyon olarak daha basit bir alternatif olarak geliştirilmiştir. RESTful sistemler çoğunlukla HTTP protokolü üzerinden Web tarayıcıları tarafından sayfaların transferinde de kullanılan HTTP fiilleri (GET, POST, PUT, DELETE v.s.) ile haberleşirler.
Aktarılan verinin formatı HTML, JSON, XML ya da farklı bir tipte olabilir. REST, bu konuda bir kısıtlama getirmez. Aktarılan verinin tipi ve özellikleri istemci ve sunucu tarafından HTTP protokolünde yer alan content-type (içerik tipi) ve benzeri metaveri ile tanımlanır.
# Kurulum
ZN dağıtımları için kurulum gerekmez.
↓ composer require znframework/package-services
# Yöntemler
# Get
Verileri listelemek için kullanılır. Genellikle api sağlayıcısının çıktısı alınır. Bu çıktı Object türünden veri olarak döndürülür. Veri gönderimi GET metodu ile yapılır.
Parametreler
string | $url | Bağlantı kurulacak URL. |
return | object | String |
Kullanımı
$response = Restful::get('https://api.openweathermap.org/data/2.5/forecast/city?q=istanbul&APPID=25e585073d9232f10fa66afa76d62fda');
output($response);
# Post
Api servislerine post gönderimi için kullanılır. Genellikle api sağlayıcısında yer alan kodlara veri göndermek için kullanılır. Böylece göndereceğiniz veriye göre istediğiniz çıktıyı elde etmeniz sağlanır. Bazende sadece veri göndermek için kullanılır. Veri gönderimi POST metodu ile yapılır.
Parametreler
string | $url | Bağlantı kurulacak URL. |
mixed | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->post('https://example.com/apis/update');
# PostJson [6.5.4]
Post gönderimi için yollanan datayı JSON biçimli yollar.
Parametreler
string | $url | Bağlantı kurulacak URL. |
array | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->postJson('https://example.com/apis/update');
# Put
Genellikle api sağlayıcısında yer alan veriyi güncellemek için kullanılır. Data gönderimi URL biçimli olarak gönderilir. Veri gönderimi özel istek PUT ile yapılır.
Parametreler
string | $url | Bağlantı kurulacak URL. |
mixed | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->put('https://example.com/apis/update');
# PutJson
Genellikle api sağlayıcısında yer alan veriyi değiştirmek için kullanılır. Data gönderimi JSON biçimli olarak gönderilir.
Parametreler
string | $url | Bağlantı kurulacak URL. |
array | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->putJson('https://example.com/apis/update');
# Patch
Genellikle api sağlayıcısında yer alan veriyi düzeltmek için kullanılır. Data gönderimi URL biçimli olarak gönderilir. Veri gönderimi özel istek PATCH ile yapılır.
Parametreler
string | $url | Bağlantı kurulacak URL. |
mixed | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->patch('https://example.com/apis/update');
# PatchJson
Genellikle api sağlayıcısında yer alan veriyi güncellemek için kullanılır. Data gönderimi JSON biçimli olarak gönderilir.
Parametreler
string | $url | Bağlantı kurulacak URL. |
array | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id,
'update' => ['name' => $name, 'ip' => User::ip()]
])
->patchJson('https://example.com/apis/update');
# Delete
Genellikle api sağlayıcısında yer alan veriyi silmek için kullanılır. Özel istek DELETE gönderimi yapar.
Parametreler
string | $url | Bağlantı kurulacak URL. |
mixed | $data | Gönderilecek veriler. Bu parametre yerine data() yönteminden de yararlanılabilir. |
return | object | String |
Kullanımı
Restful::data
([
'id' => $id
])
->delete('https://example.com/apis/delete');
# Return
Veri sağlayıcısı oluşturmak için kullanılır. Sizin makineninize uzaktan istek yapıldığında gelen post, get veya uri verilerine göre json veya xml çıktı oluşturmak kullanılır.
Parametreler
callable | $callback | Çalıştırılacak komutlar. |
return | void |
Kullanımı
Aşağıda örnek bir kullanım yer almaktadır.
Response / Yanıt
<?php namespace Project\Controllers;
use Restful, DB, Method;
class Api extends Controller
{
public function ex()
{
Restful::contentType('json')->return(function()
{
echo DB::where('id', Method::post('id'))
->select('username', 'phone')
->get('users')->resultJson();
});
}
}
Request / İstek
<?php namespace Project\Controllers;
use Restful;
class Example extends Controller
{
public function request()
{
$rest = Restful::post('domain.com/apis/api', ['id' => 4]);
output($rest);
}
}
(
username => string 'example' ( length = 9 )
phone => string '' ( length = 2 )
)
# GetRawData [6.0.3]
Yapılan isteklere ait verilerin ham halini saklar.
Parametreler
string | $type = 'string' | Çıktı türü. | |
Kullanılabilir Seçenekler | string, array, object | ||
return | string | Array | Object |
Kullanımı
output(Restful::getRawData());
# GetRawDataArray [6.0.3]
Restful::getRawData('array') kullanımı gibidir.
Parametreler
void | |||
return | array |
Kullanımı
output(Restful::getRawDataArray());
# GetRawDataObject [6.0.3]
Restful::getRawData('object') kullanımı gibidir.
Parametreler
void | |||
return | object |
Kullanımı
output(Restful::getRawDataObject());
# GetRequestHeaders [6.0.3]
Sunucuya yapılan istekleri tutar.
Parametreler
void | |||
return | array |
Kullanımı
output(Restful::getRequestHeaders());