前提條件:
首先要將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
}
}
}
}