使用KONGA配置Elasticsearch中的數據爲API

前提條件:

首先要將Oracle的數據導入到Elasticsearch中。之前的步驟以及總結在下面的博客中:使用logstash將Oracle數據導入到Elasticsearch

一、在Elasticsearch中對以導入的表創建別名

二、在KONGA中創建CONSUMER

在導航欄中選擇創建CONSUMER,打開以下界面:

點擊CREATE CONSUMER,輸入我們需要的username:

然後創建group,Group name 爲 user_AI 後面我們會用到:

三、在KONGA中創建SERVICES

在導航欄中選擇創建SERVICES,打開以下界面:

我們點擊 ADD NEW SERVICE,打開以下選項卡:

其中按照我們需要填入Service的信息:

Name:sugon_course
Description:警察學院課程信息服務
Protocol:http
Host:es-cluster 
Port:9200
Path:/gxjx_kcsjlb/doc/_search  (具體訪問路徑)

注意:
Host中一般寫 Elasticsearch 的IP,但是這裏寫es-cluster。端口也寫訪問Elasticsearch 的Port,上篇博客我們導入到 Elasticsearch 的路徑:

對於Host,其中沒有寫具體的IP,而是es-cluster,其來源:


detail --> Targets 可以看到他可以訪問的IP,這裏就包含了我們之前Elasticsearch 存在的IP地址:

四、對我們創建的Service新建Route

在此Server中新建Route  -->  course

自定義Paths,後面訪問使用此路徑,記得String Path選爲YES,Protocols爲http,調用的方法選擇GET

注意:很多參數需要我們寫好以後回車才能存入,如果存在寫好了對應參數,結果關掉以後沒有更新,應該就是寫好後未回車確認。

五、在創建好的Service中建立3個Plugins

點擊對應Service下面的Plugins,打開以下界面:

A.編輯Key Auth,這裏的key names填寫apikey:

B.在Transfoemations中新建一個Request Transformer:

編輯Request Transformer,寫入Request,看要返回哪些數據:

樣例:

_source_includes:kch,kcmc,kcywmc,xf,zhxs,zxs,llxs,syxs,kcjj,jc,cksm,kcfzrh,kcksdwh,sjxs,kcjxdg,kcjbm,kclbm,kclxm,sftk,tkrqsj,ksrqsj,scbz,kcxz,kkbmdm

然後我們再使用路徑調用時可以有選擇的返回數據。

C.新建ACL:

編輯Acl:

其中white list中填寫的 “user_AI” 是我們在第二步時創建的group name。爲了安全性只允許這個group進行訪問。
三個plugins添加好後如下圖:

六、測試API是否可用

最後API訪問路徑如下:

http://192.168.102.25:8000/sugon/gxjg_jzgjcsjzlb?apikey=WxNsQstXvqxLsPl3JTT8iC65Kalt5HNU

一定要加上 ?apikey=WxNsQstXvqxLsPl3JTT8iC65Kalt5HNU  其中的值在CONSUMERS -> VR-AI教育->Credentials->API KEYS中看:

測試結果:

可以看到使用該路徑就可以成功獲取到之前導入到Elasticsearch中的數據了。

 

拓展:

這裏分享一下最後編輯的API文檔格式,可以做個參考。

3課程數據信息

請求方式:GET

請求路徑/sugon/gxjg_jzgjcsjzlb

字段說明:

字段

類型

說明

備註

數據情況

KCH

string

課程號

 

KCMC

string

課程名稱

 

KCYWMC

string

課程英文名稱

 

XF

int

學分

 

ZHXS

string

周學時

 

ZXS

int

總學時

 

LLXS

int

理論學時

 

SYXS

int

實驗學時

 

KCJJ

CLOB

課程簡介

 

JC

CLOB

教材

 

CKSM

CLOB

參考書目

 

KCFZRH

string

課程負責人號

 

KCKSDWH

string

課程開設單位號

 

SJXS

int

實踐學時

 

KCJXDG

string

課程教學大綱

 

KCJBM

string

課程級別碼

 

KCLBM

string

課程類別

 

KCLXM

string

課程類型

 

SFTK

string

是否停開

 

TKRQSJ

string

停開日期時間

 

KSRQSJ

string

開設日期時間

 

SCBZ

string

刪除標誌

 

KCXZ

string

課程性質

 

KKBMDM

string

開課學院代碼

 

請求示例:

GET /sugon/gxjg_jzgjcsjzlb?size=1&apikey=XXXXXXXXXXX

返回示例:

{
    "took":16,
    "timed_out":false,
    "_shards":{
        "total":5,
        "successful":5,
        "failed":0
    },
    "hits":{
        "total":4440,
        "max_score":1,
        "hits":[
            {
                "_index":"gxjx_kcsjlb_index",
                "_type":"doc",
                "_id":"bx080200",
                "_score":1,
                "_source":{
                    "kcjxdg":null,
                    "sjxs":0,
                    "scbz":null,
                    "kcxz":"必修課",
                    "kclxm":null,
                    "kkbmdm":"17",
                    "kcjbm":null,
                    "cksm":null,
                    "kcjj":null,
                    "ksrqsj":null,
                    "sftk":null,
                    "kclbm":null,
                    "jc":null,
                    "kcfzrh":null,
                    "tkrqsj":null,
                    "kch":"bx080200",
                    "zxs":null,
                    "kcksdwh":"17",
                    "llxs":16,
                    "syxs":0,
                    "kcywmc":null,
                    "zhxs":"4.0-0.0",
                    "kcmc":"人文素養系列講座(創新實驗班)",
                    "xf":1
                }
            }

    }
}

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章