java restful api 介绍

1 介绍

es在提供了java client API之后,又提供了java 的restful API操作。该API不与对应的es版本直接关联,即API版本是5.3,但是可以直接与es2.3的版本进行交互。因为java client API只是封装了HTTP操作,通过http协议与ES交互。

      官网列举特点:

  1. 最小的包依赖
  2. 在所有节点上达到负载均衡
  3. 在节点故障和特定响应代码的情况下进行故障转移
  4. 连接失败惩罚:失败尝试越多,客户端等待时间越长。

2 引入

要求jdk1.7+。 官网地址
<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>rest</artifactId>
    <version>5.4.0</version>
</dependency>


3 初始化

RestClient是请求http的客户端,是线程安全。
RestClient restClient = RestClient.builder(
        new HttpHost("localhost", 9200, "http"),
        new HttpHost("localhost", 9201, "http")).build();

关闭:
restCliet.close()

4 执行请求

初始化RestClient后,可以调用其 performRequest和performRequestAsync执行同步和异步的方法。具体可参考,这里只给出一个简单sample

创建索引:
HttpEntity entity = new NStringEntity(
"{\n" +
"    \"company\" : \"qbox\",\n" +                                      
"    \"title\" : \"Elasticsearch rest client\"\n" +
"}", ContentType.APPLICATION_JSON);
Response indexResponse = restClient.performRequest("PUT","/blog/post/1",Collections.<String, String>emptyMap(),entity);
System.out.println(EntityUtils.toString(indexResponse.getEntity()));

5 读取请求

Response response = restClient.performRequest("GET", "/",
        Collections.singletonMap("pretty", "true"));
System.out.println(EntityUtils.toString(response.getEntity()));

//index a document
HttpEntity entity = new NStringEntity(
        "{\n" +
        "    \"user\" : \"kimchy\",\n" +
        "    \"post_date\" : \"2009-11-15T14:12:12\",\n" +
        "    \"message\" : \"trying out Elasticsearch\"\n" +
        "}", ContentType.APPLICATION_JSON);

Response indexResponse = restClient.performRequest(
        "PUT",
        "/twitter/tweet/1",
        Collections.<String, String>emptyMap(),
        entity);

6 项目参考


实际使用过程中可以参考如下两个项目
https://github.com/luminis-ams/elastic-rest-spring-wrapper/
https://github.com/jettro/elasticclientdemo
1
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java RESTful API接口是一种基于Java的编程语言和RESTful架构风格的接口。它的设计目的是提供一种轻量级、灵活、可伸缩和易于理解的接口,使客户端和服务器之间的通信更加简单和高效。 一个简单的Java RESTful API接口实例可以是一个用于创建、读取、更新和删除用户数据的接口。通过这个接口,客户端可以发送HTTP请求来执行不同的操作,比如创建新用户、获取特定用户的信息、更新用户的信息或者删除用户。 在这个实例中,我们可以使用Java语言和相关的框架(比如Spring Boot)来实现RESTful接口。我们可以通过创建一个Controller类来定义不同的URL路径和相应的操作(比如GET、POST、PUT、DELETE),并且使用相关的注解来标识这些操作的行为。我们还可以使用Java对象来表示用户数据,通过JSON格式来传输数据到客户端和服务器端。 在实现Java RESTful API接口的过程中,我们还可以考虑到一些安全性和性能的问题。比如使用HTTPS来加密通信、使用认证和授权机制来保护接口的访问、使用缓存来提高接口的访问速度等等。 总之,Java RESTful API接口是一种有效的方式来实现客户端和服务器端之间的通信,并且它可以帮助我们设计出简洁、可维护和可扩展的接口。通过这种接口,我们可以更加灵活地构建各种不同类型的应用程序,比如移动应用、Web应用、物联网应用等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值