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ı
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
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.