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ığı
-
Veri Dönüşümü:
- Listeleme isteği (
IListRequest
) içindekifiltering
,sorting
, veaggregation
gibi alanlar, JSON string'e dönüştürülerek query string'e eklenir. pageNumber
verowCount
doğrudan query string'e yazılır.
- Listeleme isteği (
-
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
Parametre | Tipi | Açıklama |
---|---|---|
request | IListRequest | Dö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.
- Kullanım Yeri:
-
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.