Ana içeriğe geç

2.1.1.4 BFF Util Modülü#

BFF Util paketi diğer bff modülleri tarafından sunulan yetenekler için ortak işlevler sağlayan sınıfları içerir.

Aşağıda util modülünde yer alan sınıflar açıklanmıştır.


HvlDateConverter#

Angular projelerinde sık kullanılan json2typescript kütüphanesi için tarih alanları için serialize ve deserialize işlemlerini yerine getiren sınıftır.

Model tanımlarında tarih alanları için kullanılması tavsiye edilir. Bu sayede backend servislere tarih değeri iletirken ve backend servislerden tarih değerini model sınıflara atarken sorun yaşamazsınız.

Aşağıdaki örneği inceleyiniz:

import { JsonObject, JsonProperty } from 'json2typescript';
import { HvlDateTimeConverter } from '@hvlng/framework-bff/util';

@JsonObject('MyModel')
export class MyModel extends HvlBaseModel {
    @Required()
    @JsonProperty('name', String, true)
    name: string = null;

    @EmptyControl()
    @JsonProperty('commnentDate', HvlDateConverter, true)
    commnentDate: Date = null;
}

Yukarıdaki örnekte modelde Date tipinde yeralan commnentDate alanının eksen tabanlı backend servislerden gelen/giden tarih verisinin uyumlu serialize/deserialize olması için HvlDateConverter kullanılmıştır.


HvlDateTimeConverter#

HvlDateConverter sınıfına benzer şekilde eğer veri tarih bilgisine ek olarak zaman bilgisini de içermeli ise HvlDateTimeConverter kullanılmalıdır. Kullanımı HvlDateConverter ile aynıdır, aynı örneği inceleyebilirsiniz.


HvlEnumConverter#

Angular projelerinde sık kullanılan json2typescript kütüphanesi için enum alanlar için serialize ve deserialize işlemlerini yerine getiren sınıftır.

Aşağıdaki örneği inceleyiniz:

import { JsonConverter } from 'json2typescript';
import { HvlEnumConverter } from '@hvlng/framework-bff/util';

export enum EditorType {
    FULL = 'FULL',
    LIMITED = 'LIMITED',
}

@JsonConverter
export class EditorTypeConverter extends HvlEnumConverter<EditorType> {
    constructor() {
        super(EditorType, 'EditorType');
    }
}


import { JsonObject, JsonProperty } from 'json2typescript';

@JsonObject('MyModel')
export class MyModel extends HvlBaseModel {
    @Required()
    @JsonProperty('name', String, true)
    name: string = null;

    @EmptyControl()
    @JsonProperty('editorType', EditorTypeConverter, true)
    editorType: EditorType = null;
}

Yukarıdaki örnekte öncelikle EditorType isminde bir enum tanımlanmış ve bu enum serialize/deserialize işlemleri için EditorTypeConverter sınıfı ata sınıfı HvlEnumConverter olacak şekilde tanımlanmıştır.

Daha sonra modelde EditorType tipindeki alanların düzgün serialize/deserialize yapılabilmesi için EditorTypeConverter dönüştürücü olarak verilmiştir.

Önemli

HvlEnumConverter sınıfının düzgün çalışması için typescript tarafındaki enum tanımı ile backend'de java tarafındaki enum tanımının birbiri ile uyumlu olması gerektiği unutmayınız. Bunun için Eksen altyapısı içerisinde gradle plugin'leri ile sağlanan kod üreticileri kullanarak java tarafındaki enum sınıflardan typescript kodunun otomatik üretilmesini sağlayabilirsiniz.


HvlMapConverter#

Angular projelerinde sık kullanılan json2typescript kütüphanesi için Map tipindeki alanlar için serialize ve deserialize işlemlerini yerine getiren sınıftır.

Aşağıdaki örneği inceleyiniz:

import { JsonObject, JsonProperty } from 'json2typescript';
import { HvlMapConverter } from '@hvlng/framework-bff/util';

@JsonObject('MyModel')
export class MyModel extends HvlBaseModel {
    @Required()
    @JsonProperty('name', String, true)
    name: string = null;

    @EmptyControl()
    @JsonProperty('processMap', HvlMapConverter, true)
    processMap: Map<string, any> = new Map<string, any>();
}

Yukarıdaki örnekte modelde Map tipinde yeralan processMap alanının eksen tabanlı backend servislerden gelen/giden Map verisinin uyumlu serialize/deserialize olması için HvlMapConverter kullanılmıştır.


HvlErrorMessageConverter#

Eksen uyumlu backend servislerden alınan hata mesajlarını HvlErrorMessageModel modeline çevrilmesini sağlayan sınıftır. Bu sınıf bff modülleri içerisindeki sınıflar tarafından kullanılmaktadır.