KKUT Docs

Restful Kütüphanesi

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ıf…

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

Bu bileşen KUT ile birlikte gelir; ayrıca kurulum gerektirmez.

↓ Paket KUT ile birlikte gelir.

Yöntemler

mixed get(string $url = [[NULL]])
mixed post(string $url = [[NULL]], mixed $data = [[NULL]])
mixed postJson(string $url = [[NULL]], array $data = [[NULL]])
mixed put(string $url = [[NULL]], mixed $data = [[NULL]])
mixed putJson(string $url = [[NULL]], array $data = [[NULL]])
mixed patch(string $url = [[NULL]], mixed $data = [[NULL]])
mixed patchJson(string $url = [[NULL]], array $data = [[NULL]])
mixed delete(string $url = [[NULL]], mixed $data = [[NULL]])
void return(callable $callback)
this url(string $url)
this data(mixed $data)
this contentType(string $type = {{'json'}}, string $charset = {{'utf-8'}})
this httpStatus(int $code = [[NULL]])
mixed getRawData(string $type = 'string')
array getRawDataArray(void)
object getRawDataObject(void)
array getRequestHeaders(void)

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');
Data Biçimi: name=example&ip=127.0.0.1

PostJson KUT 1.0’da desteklenir

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');
Data Biçimi: {name:'example', ip:'127.0.0.1'}

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');
Data Biçimi: name=example&ip=127.0.0.1

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');
Data Biçimi: {name:'example', ip:'127.0.0.1'}

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');
Data Biçimi: name=example&ip=127.0.0.1

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');
Data Biçimi: {name:'example', ip:'127.0.0.1'}

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

Response Address: domain.com/apis/api
 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 

Request Address: mysite.com/example/request
 namespace Project\Controllers;

use Restful;

class Example extends Controller
{
    public function request()
    {
        $rest = Restful::post('domain.com/apis/api', ['id' => 4]);

        output($rest);
    }
}
0 => object
(
        username => string 'example' ( length = 9 )
        phone => string '' ( length = 2 )

GetRawData KUT 1.0’da desteklenir

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 KUT 1.0’da desteklenir

Restful::getRawData('array') kullanımı gibidir.

Parametreler

void
return array

Kullanımı

output(Restful::getRawDataArray());

GetRawDataObject KUT 1.0’da desteklenir

Restful::getRawData('object') kullanımı gibidir.

Parametreler

void
return object

Kullanımı

output(Restful::getRawDataObject());

GetRequestHeaders KUT 1.0’da desteklenir

Sunucuya yapılan istekleri tutar.

Parametreler

void
return array

Kullanımı

output(Restful::getRequestHeaders());
KUT Framework 1.0Katmanlı Uygulama Tabanı

Kur. Uyarla. Türet.