Ana içeriğe geç
Version: 1.0.1

List Request to Query String

listRequestToQueryString yardımcı fonksiyonu, bir listeleme isteği nesnesini (IListRequest) URL query string formatına dönüştürerek API çağrıları için kullanılabilir hale getirir. Bu fonksiyon, Ops Table ekosisteminde filtreleme, sıralama ve sayfalama gibi işlemleri query string olarak backend'e iletmek için kullanılır.

Ne İşe Yarar?

List Request to Query String:

  • Listeleme isteğini URL uyumlu bir query string formatına dönüştürür.
  • Filtreleme, sıralama ve toplama bilgilerini JSON formatında query string'e ekler.
  • Gereksiz veya boş alanları query string'den çıkarır.

İş Mantığı

  1. Veri Dönüşümü:

    • Listeleme isteği (IListRequest) içindeki filtering, sorting, ve aggregation gibi alanlar, JSON string'e dönüştürülerek query string'e eklenir.
    • pageNumber ve rowCount doğrudan query string'e yazılır.
  2. Boş ve Geçersiz Alanları Atma:

    • Boş, null veya tanımlı olmayan alanlar query string'e eklenmez.
    • queryString.stringify fonksiyonu ile bu işlem optimize edilir.

Fonksiyon Tanımı

import queryString from "query-string";

export function listRequestToQueryString(request: IListRequest): string {
const queryStringObject: Record<string, any> = {
pageNumber: request.pageNumber,
rowCount: request.rowCount,
};

if (request.filtering) {
queryStringObject.filtering = JSON.stringify(request.filtering);
}

if (request.sorting) {
queryStringObject.sorting = JSON.stringify(request.sorting);
}

if (request.aggregation) {
queryStringObject.aggregation = JSON.stringify(request.aggregation);
}

return queryString.stringify(queryStringObject, {
skipNull: true,
skipEmptyString: true,
});
}

Parametreler

ParametreTipiAçıklama
requestIListRequestDönüştürülecek listeleme isteği nesnesi.

Dönüş Değeri

  • URL query string formatında bir dizge.

Kullanım Örneği

Girdi Verisi

const listRequest = {
pageNumber: 1,
rowCount: 10,
filtering: {
criterias: [{ field: "name", operator: "contains", value: "John" }],
},
sorting: { field: "date", order: "asc" },
aggregation: { criterias: [{ field: "amount", type: "sum" }] },
};

Çağrı

const queryString = listRequestToQueryString(listRequest);
console.log(queryString);

Çıktı

"pageNumber=1&rowCount=10&filtering={\"criterias\":[{\"field\":\"name\",\"operator\":\"contains\",\"value\":\"John\"}]}&sorting={\"field\":\"date\",\"order\":\"asc\"}&aggregation={\"criterias\":[{\"field\":\"amount\",\"type\":\"sum\"}]}"

Kullanım Alanları

List Request to Query String, Ops Table ekosisteminde aşağıdaki alanlarda ve fonksiyonlarda kullanılır:

  • Ops Table Service (TableService.ts):

    • Kullanım Yeri: getdata fonksiyonunda çağrılır.
      • Amaç: Backend'e gönderilecek olan listeleme isteğini query string formatına dönüştürmek.
    • Kullanım Yeri: initialProcess fonksiyonunda çağrılır.
      • Amaç: Varsayılan sorgu parametrelerini oluşturup API çağrısını başlatmak.
  • URL Yönetimi (updateQueryParams):

    • Kullanım Yeri: Kullanıcı tarafından tarayıcı URL'sine yazılan filtre ve sıralama ayarlarının korunmasını sağlar.
    • Amaç: Tablo durumunu URL ile senkronize etmek ve kullanıcı deneyimini iyileştirmek.

Burada Yapılan Ana İşlemler

List Request to Query String fonksiyonu, aşağıdaki işlemleri gerçekleştirir ve bu noktalarda özelleştirilebilir:

  • JSON Formatlama: Karmaşık verileri string'e dönüştürerek query string'e ekler.
  • Optimize Edilmiş Çıkış: Gereksiz boş veya null değerleri query string'den çıkarır.
  • API Entegrasyonu: Backend ile uyumlu query string formatı oluşturur.