Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Genel Programlama > Clomosy ile değişken kullanımı
  Aktif Konular Aktif Konular RSS - CLRest Kullanımı
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

CLRest Kullanımı

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 92
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: CLRest Kullanımı
    Gönderim Zamanı: 2 Saat 40 Dakika Önce Saat 11:12
Unitler arasında temiz ve performanslı bir şekilde nasıl TCLResti kullanabilirim 30 dan fazla Api bağlantım var ve performans yükü bindirmek istemiyorum.https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 399
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 33 Dakika Önce Saat 11:19
Merhaba Güney, 
Uygulamamız da bir tame birim oluşturalım yani kütüphane oluşturalım (uApı.pas ya da uApiLib). 
Bu yeni unit uygulamanın API yöneticisi olacak
Yeni unitte oluşturalın prosedürile daha yüksek bir performan sergileyebiliriz


https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 92
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 31 Dakika Önce Saat 11:21
uDataLib oluşturdum

void GetConnectDB(TCRest : TCLRest)
{
  try
    if (Clomosy.AppPlatform == 0) // is Windows
    {
      TCRest.BaseURL = 'http://MY-API/';
    }else {
      TCRest.BaseURL = 'https://MY-URL.com.tr/';
    }
    //TCRest.AddHeader('Authorization','Bearer ' + Clomosy.GlobalVariableString);
    TCRest.Execute;
    TCRest.ClearParams;
    TCRest.ClearBody;
  except
  ShowMessage('Exception Class: '+LastExceptionClassName+' Exception Message: '+LastExceptionMessage);
  }
}

Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 92
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 30 Dakika Önce Saat 11:22
Sonrasında alttaki şekilde çağırdım 
void GetUserPrivilegesV
{
  TableName = TClProButton(MainForm.Clsender).clTagStr;
  OrderID = TClProButton(MainForm.Clsender).clTagInt;
 //TCRest.ClearParams;
  uDataLib.GetConnectDB(TCRest);
  TCRest.Resource = 'privileges';
  TCRest.Accept = 'application/json';
  TCRest.Method = rmGET;
  
  TCRest.AddHeader('Authorization','Bearer ' + Clomosy.GlobalVariableString);
  TCRest.OnCompleted = 'GetUserPrivilegesCompletedV';
  TCRest.ExecuteAsync;
  TCRest.ClearBody;
  
  
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
M-Guney Açılır Kutu İzle
Deneyimli Üye
Deneyimli Üye


Kayıt Tarihi: 16 Eylül 2025
Konum: Konya, Meram, K
Durum: Aktif Değil
Puanlar: 92
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı M-Guney Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 29 Dakika Önce Saat 11:23
Fakat bir alt unitte ise hem geç çalışıyor hem de ne kadar istesem de showMessage ile tcl.response u gösteremiyorum

void GetOrderDetailsCompletedV
var
  jsonResponse, NoteString: String;
  Arr : TCLJSONArray;
{
  ShowMessage('query is finished');
  jsonResponse = TCRest.Response;
  ShowMessage('Json Response: '+ jsonResponse);
  Arr = TCLJSONArray.Create;
Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
  if(jsonResponse == ''){
    ShowMessage('Sipariş Detaylar listesi boş herhangi bir sipariş yok.');
  }else{
    noteMemo.Text = Clomosy.CLParseJSON(jsonResponse, '0.note');
    AmountValueLbl.Text = Clomosy.CLParseJSON(jsonResponse, '0.total_price') + 'TL';
    DetailsPnlV(Arr.Count, jsonResponse);
  }
}

void GetOrderDetailsV
{
  ShowMessage('OrderID will be query: '+IntToStr(OrderID));
  TCRest.ClearParams;
  uDataLib.GetConnectDB(TCRest);
  TCRest.Resource = 'orderDetails/' + IntToStr(OrderID);
  TCRest.Accept = 'application/json';
  TCRest.Method = rmGET;
  
  TCRest.AddHeader('Authorization','Bearer ' + Clomosy.GlobalVariableString);
  TCRest.OnCompleted = 'GetOrderDetailsCompletedV';
  TCRest.ExecuteAsync;
  TCRest.ClearBody;
  
}
https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">
Yukarı Dön
Emr.Erkmn Açılır Kutu İzle
Moderatör
Moderatör


Kayıt Tarihi: 28 Şubat 2025
Durum: Aktif
Puanlar: 399
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı Emr.Erkmn Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 2 Saat 6 Dakika Önce Saat 11:46
Sorunun iki kaynağı var gibi gözüküyor, 
uDataLib.GetConnectDB için de mantık hatası ve  executeAsync https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">

void GetConnectDB(TCRest : TCLRest)
{
  try
  {
    if (Clomosy.AppPlatform == 0) // is Windows
    {
      TCRest.BaseURL = 'http://MY-API/';
    }else {
      TCRest.BaseURL = 'https://MY-URL.com.tr/';
    }
  }
  except
  {
    ShowMessage('GetConnectDB Hatası: '+LastExceptionMessage);
  }
}
Execute komutu önce çalışıyor ve yavaşlatıyor. 
Asıl işi yapacak olan ExecuyeAsync komunu çalıştırmayı dene. 
GetConnectDB sadece basel url olarak ayarla,

kod da TclREst'i iki prosedürde de asenkron olarak kullanışmış, 


void GetOrderDetailsV
var
  jsonResponse, NoteString: String;
  Arr : TCLJSONArray;
{
  ShowMessage('OrderID will be query: '+IntToStr(OrderID));
  TCRest.ClearParams;
  
  uDataLib.GetConnectDB(TCRest);
  
  TCRest.Resource = 'orderDetails/' + IntToStr(OrderID);
  TCRest.Accept = 'application/json';
  TCRest.Method = rmGET;
  
  TCRest.AddHeader('Authorization','Bearer ' + Clomosy.GlobalVariableString);
  
  try
    TCRest.Execute;
  except
    ShowMessage('API Hatası (Execute): ' + LastExceptionMessage);
  }

  jsonResponse = TCRest.Response;
  ShowMessage('Json Response: '+ jsonResponse); 
  
  if(jsonResponse == ''){
    ShowMessage('Sipariş Detaylar listesi boş herhangi bir sipariş yok.');
  }else{
    try
      Arr = TCLJSONArray.CreateFromJSON(jsonResponse);
      noteMemo.Text = Clomosy.CLParseJSON(jsonResponse, '0.note');
      AmountValueLbl.Text = Clomosy.CLParseJSON(jsonResponse, '0.total_price') + 'TL';
      DetailsPnlV(Arr.Count, jsonResponse);
    except
      ShowMessage('JSON Ayrıştırma Hatası: ' + LastExceptionMessage);
    }
  }
}


Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,035 Saniyede Yüklendi.