Restful Kütüphanesi


    × Bunları biliyor muydunuz?
"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


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 [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');
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
<?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 

Request Address: mysite.com/example/request
<?php 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 [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());