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, veaggregationgibi alanlar, JSON string'e dönüştürülerek query string'e eklenir. pageNumberverowCountdoğ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.stringifyfonksiyonu 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:
getdatafonksiyonunda çağrılır.- Amaç: Backend'e gönderilecek olan listeleme isteğini query string formatına dönüştürmek.
- Kullanım Yeri:
initialProcessfonksiyonunda ç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.