Özelleştirme
WISECP API’yi kendinize özel eylemler yaratarak özelleştirebilirsiniz.
Eylem Oluşturmak
Yeni bir API eylemi oluşturmak için, harici bir API kullanıyorsanız, API'e ait kimlik bilgilerinin oluşturduğunuz eylem için gerekli izinleri içerdiğinden emin olmanız gerekmektedir. Aksi takdirde, yetkilendirilmemiş istekler için işlem başarısız sonuçlanacaktır.
Eylemleri oluşturmak için iki yöntem bulunmaktadır:
- Yöntem 1: "coremio/configuration/api-actions.php" dosyasını düzenlemek.
Ancak, bu yöntem gelecek sürümlerde dosya sıfırlanma potansiyeli sebebiyle önerilmemektedir. - Yöntem 2: Bir modüle ait sınıf dosyası içerisinde eylem oluşturmak. (Tavsiye edilir.)
Bu yöntem, örneğin "coremio/modules/Addons/SampleAddon/SampleAddon.php" dosyasında yapılabilir.
1. Yöntem
"coremio/configuration/api-actions.php" dosyasını açın ve yeni eylemlerinizi aşağıda örnek verilen formatta ekleyin.
<?php
return [
'api-actions' => [
'Clients' => [
'CreateClientSsoToken',
'ValidateClient',
],
'Billing' => [
'GetInvoice',
'GetInvoices',
'CreateInvoice',
'CreateInvoiceItem',
'UpdateInvoice',
'UpdateInvoiceItem',
'DeleteInvoice',
'DeleteInvoiceItem',
'NewAction', // A new action for the existing Group
],
// New group and action
'NewSample' => [
'YourAction1',
'YourAction2',
]
],
];
2.Yöntem
Geliştirmekte olduğunuz modülün sınıf dosyasını açın ve aşağıda örnek verilen formatta düzenleme yapınız.
<?php
class SampleAddon
{
// Sample methods
}
// Set api actions
Config::set("api-actions",[
'Billing' => [
'TestAction',
],
'NewSample' => [
'YourAction1',
'YourAction2',
]
]);
Eylem Kodları
Eylemi oluşturduktan sonra bu eyleme atılacak isteklere vereceğiniz yanıtı ayarlamak için bir sınıf hazırlamanız gerekiyor.
"coremio/helpers/apis/" dizinine, yeni oluşturduğunuz eylemin adıyla eşleşen bir PHP dosyası yerleştirin. Örneğin "NewSample.php".
Örnek olarak aşağıdaki php kodunu kullanabilirsiniz:
<?php
namespace WISECP\Api;
class NewSample
{
public array $endpoint; // /api/NewSample/YourAction/$endpoint.. value in continuation
public array $query_params; // Returns the query parameters, input: ?param1=value1¶m2=value2 , Output: ['param1' => 'value1','param2' => 'value2']
public function YourAction1($params=[])
{
if(\Filter::SERVER("REQUEST_METHOD") != "POST") throw new \Exception("Invalid request");
$api_credential = \Api::get_credential(); // Database api_credentials values
if(($params["sample_field"] ?? '') != "test123")
throw new \Exception("Please fill in sample_field");
$return = [
'status' => "successful",
'data' => [
'test1' => "value1",
'test2' => "value2",
],
];
// Set Internal log
if(!$api_credential)
\Api::save_log(0,'INTERNAL',__FUNCTION__,debug_backtrace()[0] ?? [],$params,$return,\UserManager::GetIP());
return $return;
}
}