Ana içeriğe geç

3.3.2. İstemci API (Client)#

Log Search uygulamasının rest api uçlarını kullanmayı sağlayan yapıdır.

Bağımlılıklar#

Gradle Bağımlılıkları

api (
        [group: 'tr.com.havelsan.framework.logger.cloud', name: 'hvl-logger-search-cloud-client']
)

YAML#

hvl:
  logger:
    search:
      url: ${LOGGER_SEARCH_URL:http://hvlloggersearch:8093}
      path: ${LOGGER_SEARCH_PATH:/es}
      indices-name: ${LOGGER_SEARCH_INDICES_NAME:hvl-*}

hvl-infra üzerinden Config Server kullanıldığı durumlarda bootstrap.yml dosyasındaki spring.cloud.config.profile pathine hvl-logger değerinin eklenmesi gerekmektedir. Böylece yukarıdaki özelliklerin ve daha fazlasının olduğu application-hvl-logger.yml dosyası projeye dahil olacaktır.

Uyarı

hvl.logger.producer.enabled değeri geliştirme ortamları için varsayılan olarak false olarak ayarlanmıştır.

Rest Servis Tanımı#

Feign client uçlarını kullanabilmek için configurasyon bean'ine asağıdaki annotasyonlar eklenmelidir.

Yukarıda anlatılan tanımlama yapıldıktan sonra kullanım için

@Autowired
private HvlLogSearchRestService logSearchRestService;

kullanılacağı sınıfa servis ile ilgili kod bloğu eklenmelidir.

Sorgu Alanları#

Oluşturulacak sorguya göre aşağıdaki alanlar kullanılabilir. Kullanım başlığında detaylı örnek mevcuttur.

Kullanım#

Example

// username == 'acuhadaroglu' && (eventType == ('event1' OR 'event2'))
final HvlLogSearchQueryModel logSearchQueryModel = HvlLogSearchQueryModelBuilder.create()
        .withIndices("*")
        .and("username", HvlSearchOperation.STRING_EQUALS, "acuhadaroglu")
        .subCriteria(HvlLogSearchSubQueryModelBuilder.create()
                .or("eventType", HvlSearchOperation.STRING_EQUALS, "event1")
                .or("eventType", HvlSearchOperation.STRING_EQUALS, "event2")
        )
        .build();

// (username == ('acuhadaroglu' OR 'may')) && (eventType == ('event1' OR 'event2'))
final HvlLogSearchQueryModel logSearchQueryModel = HvlLogSearchQueryModelBuilder.create()
        .withIndices("*")
        .subCriteria(HvlLogSearchSubQueryModelBuilder.create()
                .or("username", HvlSearchOperation.STRING_EQUALS, "acuhadaroglu")
                .or("username", HvlSearchOperation.STRING_EQUALS, "may")
        )
        .subCriteria(HvlLogSearchSubQueryModelBuilder.create()
                .or("eventType", HvlSearchOperation.STRING_EQUALS, "event1")
                .or("eventType", HvlSearchOperation.STRING_EQUALS, "event2")
        )
        .build();

try {
    //list için
    List<HvlEventLogModel> = logSearchRestService.searchList(logSearchQueryModel).getBody();

    //page için
    HvlPage<HvlEventLogModel> = logSearchRestService.searchPage(logSearchQueryModel).getBody();
} catch (HvlLogSearchException e) {
    throw new HvlEventLogSearchException(e.getMessage());
}

Rest Client Kullanımı

Service metodlarının detaylarına swagger dokümanından ulaşabilirsiniz.