Rest风格

本文深入探讨RESTful架构原则,展示如何利用Elasticsearch进行数据索引、查询及文档管理。涵盖基本命令如PUT、POST、DELETE、GET,并详解索引创建、字段类型指定、文档操作流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一种软件架构风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

基本Rest命令说明:

methodurl地址描述
PUTlocalhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)
POSTlocalhost:9200/索引名称/类型名称创建文档(随机文档id)
POSTlocalhost:9200/索引名称/类型名称/文档id/_update修改文档
DELETElocalhost:9200/索引名称/类型名称/文档id删除文档
GETlocalhost:9200/索引名称/类型名称/文档id查询文档通过文档id
POSTlocalhost:9200/索引名称/类型名称/_search查询所有数据

关于索引的基本操作

创建一个索引

PUT /索引名/~类型名~/文档id
{请求体}

PUT /test/type1/1
{
  "name": "小叶曲",
  "age": 3
}

 完成了自动增加了索引!数据也成功的添加了,这就是我说大家在初期可以把它当做数据库学习的原因!

指定字段的类型

那么 name 这个字段用不用指定类型呢。毕竟我们关系型数据库 是需要指定类型的啊 !

  • 字符串类型
    text 、 keyword
  • 数值类型
    long, integer, short, byte, double, float, half_float, scaled_float
  • 日期类型
    date
  • 布尔值类型
    boolean
  • 二进制类型
    binary
  • 等等.....
PUT /test2
{
  "mappings": {
    "properties": {
      "name": {
        "type": "text"
      },
      "age": {
        "type": "long"
      },
      "birthday": {
        "type": "date"
      }
    }
  }
}

获得这个规则! 可以通过 GET 请求获取具体的信息!

查看默认的信息

PUT /test3/_doc/1
{
  "name": "小叶曲11",
  "age": 1,
  "birthday": "1998-01-01"
}

如果自己的文档字段没有指定,那么es 就会给我们默认配置字段类型!

扩展: 通过命令 elasticsearch 索引情况! 通过get _cat/ 可以获得es的当前的很多信息!

修改

提交还是使用PUT 即可! 然后覆盖!(旧方法)

PUT /test3/_doc/1
{
  "name": "小叶曲22",
  "age": 1,
  "birthday": "1998-01-01"
}

现在的方法!

POST /test3/_doc/1/_update
{
 "doc":{
   "name":"小叶曲123"
 }
}

删除索引

通过DELETE 命令实现删除、 根据你的请求来判断是删除索引还是删除文档记录

DELETE /test3

DELETE /test3/_doc/1

使用RESTFUL 风格是我们ES推荐大家使用的!

### REST风格架构的使用场景 REST风格架构适用于需要通过网络进行通信的应用程序,尤其是在分布式系统和Web服务中。由于其轻量级特性以及对标准协议的支持,RESTful架构广泛应用于现代互联网应用和服务集成领域[^1]。 常见的使用场景包括但不限于以下几种: - **跨平台数据交互**:不同设备之间可以通过HTTP/HTTPS协议访问共享的数据资源。 - **微服务架构支持**:在微服务环境中,各个独立的服务模块能够借助REST接口完成高效协作。 - **移动应用后端连接**:移动端APP常利用REST API获取远程服务器上的动态内容或提交用户行为记录。 - **物联网(IoT)**:传感器节点向云端发送测量值或者接收配置指令时也经常采用RESTful模式。 这些场景下之所以选择REST作为解决方案之一是因为它具备良好的扩展性和灵活性特点[^2]。 ### 设计原则 为了使一个Web服务成为真正的RESTful服务,在设计过程中应当严格遵守以下几个核心原则: #### 资源导向(Resource-Oriented) 每一个URI代表唯一的一个实体对象(即“资源”),并通过不同的HTTP动词(GET, POST, PUT, DELETE)来表达对该资源的操作意图[^3]。例如: ```http GET /books/{id} // 获取指定ID书籍的信息 POST /books // 创建一本新书 PUT /books/{id} // 更新某本书籍详情 DELETE /books/{id} // 删除特定编号下的图书条目 ``` #### 无状态(Stateless) 每次请求都应包含足够的上下文信息以便于处理当前事务而无需依赖先前的状态保存机制。这意味着客户端负责维护会话历史而不是让服务端承担这部分责任[^4]。 #### 统一接口(Unified Interface) 定义了一组固定的规则集用来指导开发者如何构建一致性的API接口。具体表现为四个方面: 1. **地址识别**(Identification of Resources): 每项资源都有唯一的URL路径; 2. **自描述消息**(Self-descriptive Messages): 所有传输包均携带必要的元数据说明自身含义; 3. **超媒体驱动(Hypermedia as the Engine of Application State - HATEOAS)**: 返回的结果里嵌入链接引导下一步动作方向; 4. **分层系统(Layered System)**: 客户不知道自己正在与哪一层组件打交道从而简化整体结构复杂度。 以上便是关于REST风格架构的一些基本介绍及其主要设计理念概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值