Балерина-интегратор и Elasticsearch - PullRequest
2 голосов
/ 04 апреля 2020

Я работаю над своим проектом бакалавриата, и мне нужно использовать промежуточное ПО интегратора Ballerina.

Теперь мне нужно создать сервис, который сможет индексировать данные, поступающие к балерине, в Elasticsearch. Есть способ связаться с Elasticsearch, используя только балерину (без использования Log sta sh или File beat .. ) как мы общались с базой данных SQL?

enter image description here

1 Ответ

1 голос
/ 05 апреля 2020

Если кто-то ищет то же самое, я просто нашел способ общаться с Elasti c, и он работает очень хорошо

--- вот код ---

import ballerina/http;
import ballerina/log;


listener http:Listener httpListener = new(9090);

http:Client elasticDB = new("http://localhost:9200/");

@http:ServiceConfig{
    basePath: "/elastic"
}

service GetElasticSource on httpListener{
    @http:ResourceConfig {
        methods: ["GET"],
        path: "/{index}/_source/{id}"
    }

    resource function retrieveElasticIndexById(http:Caller httpCaller,   http:Request httpRequest, string index, string id){
        http:Response resp = new;

        var data = elasticDB->get(<@untained> ("/"+index+"/_source/"+id));

        if(data is http:Response){
            resp = data;
            }

        var respRet = httpCaller->respond(resp);
        if(respRet is error){
            log:printError("error responding to the client", err = respRet);
        }
    }
}
...