基于Http协议,以JSON为数据交互格式的Restful风格API
(提前声明:文章由作者:张耀烽/CSDN主页:https://blog.csdn.net/youbitch1/
结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明)
(整个教程的ES版本以及Kibana版本都是基于5.6.8)
(文章参考:Elasticsearch权威指南(书籍),Elasticsearch官方文档JavaApi5.6.8,实际项目中的应用场景)
(帮到到您请点点关注,文章持续更新中!)
-
如何发送restful请求?:如下是一条请求的示例
-
curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'
-
curl -X:不是必要的,可以忽略
-
VERB:HTTP的方法;GET POST PUT DELETE HEAD
-
PROTOCOL: http或者https的协议(如果你的环境是HTTPS时需要携带,HTTP时无需关注)
-
HOST: Elasticsearch集群中的任何一个节点的主机名,如果是在本地的节点,那么就叫 localhost
-
PORT: Elasticsearch HTTP服务所在的端口,默认为9200
-
PATH: API路径(PATH包含多个组件,稍后会写出来)
-
QUERY_STRING: 一些可选的查询请求参数,比如?pretty 参数将使请求返回更加美观 易读的JSON数据
-
BODY: 一个JSON格式的请求主体(不是必须的,类似于请求的参数)
-
-
-
OK,上面这就是一条标准的restful请求,下面我直接举个栗子吧,看的更直观一些,一下就懂了
-
启动ES和Kibana
-
进入Kibana的Dev Tools页面
-
//比如我这里一下计算集群中的文档数量
curl -XGET 'http://localhost:9200/_count?pretty'-d'
{ "query":
{
"match_all": {}
}
}
// {}这个部分的东西都是Body,说白了就是你要请求的参数,我这里选择的match_all所有
//其他的一一对应,就看的更直白了
-
当执行完之后, Elasticsearch返回一个类似 200 OK 的HTTP状态码和JSON格式的响应主体(除了HEAD请求)
-
上面的请求会得到如下的JSON格式的响应主体:
{
"count": 46302,
"_shards": {
"total": 236,
"successful": 236,
"skipped": 0,
"failed": 0
}
}
-
但是各位发现没有,这样写也太麻烦了吧,本来Kibana就直接连接了我们的ES,那么我们的IP和端口都是Kibana已知的
-
所以<PROTOCOL>://<HOST>:<PORT>这个部分的东西可以完全省略掉
-
简写后如下图所示:
#下一章我会写一个增删改查的案例带大家熟悉ES原生的SQL语句(你可以这么理解,其实准确的说是基于HTTP的restful请求)