1.1 Java中Stream是怎么样的?Java中的Stream是一种高效的、以声明方式处理数据序列的工具。Stream API允许我们以简单且直观的方式进行数据处理和转换。...然而,并行流的实现引入了更多复杂性和潜在开销,以下是它们的关键区别:线程模型:顺序流(stream)在单线程上运行,任务是串行执行的。...适用场景:顺序流更适合轻量级、对输出顺序敏感的场景。并行流适用于数据量大、任务无状态或线程安全性较高的计算密集型任务。...代码编写2.1 同步方式同步实现起来比较简单,我这里就直接上异步的代码了2.2 异步方式`package stream//TIP 模仿Java的Stream流式处理// 通常使用ToStream或者Of...Stream的核心是将数据操作流式化,本质上是通过灵活的API按照声明式编程的思维进行处理。
作为一名开发者,相信在看的各位都知道“REST”这个术语,但是 REST 是什么意思,什么是 RESTful 服务?今天笔者带大家好好了解一下 RESTful。什么是REST?...在 REST 架构风格中,客户端的实现和服务器的实现可以独立完成,彼此不知道对方。这意味着客户端的代码可以随时更改而不影响服务器的运行,而服务器端的代码可以更改而不影响客户端的运行。...这就是前后端分离的优势所在。如何使用REST API?HTTP 动词REST API 通过各种 HTTP 请求方法,使前端与服务器的通信过程更容易,最常用的方法是:GET : 用于读取服务器上的数据。...一些常见的 HTTP 状态代码包括:200:成功的请求,通常是 GET201:创建后请求成功,通常是 POST204:请求成功,没有返回内容,通常是 PUT 或 PATCH301:永久重定向到另一个端点...400:错误请求(客户端应修改请求)401:未经授权,凭据无法识别403:禁止,凭据接受但没有权限404:未找到,资源不存在410:消失了,资源以前存在但现在不存在429:请求过多,用于速率限制,应包含重试标头
自己在写Node服务时你遇到如何定义好接口的问题吗?下面介绍一种API架构风格,也是目前主流的API设计风格,你或许一直在使用。 ? RESTful API 示例 REST是什么?...风格这个词是非常关键的,因为它告诉我们,REST 不是协议,也不是什么硬性的规范,仅仅就是一种架构风格而已。...无状态(Sateless) 所谓无状态就是所有用户会话信息都保存在客户端,意思就是所有的会话信息服务端都不管,不要妄想让服务端存着你的用户信息、用户会话信息、当前所处的状态,服务端都不知道,因为服务端不管事了...按需代码(Code-On-Demand 可选) 这是一条可选的限制,也不是很重要。所谓按需代码是指客户端可以下载运行服务端传来的代码(比如JS),按需代码的好处是通过减少一些功能,简化了客户端。...404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
虽然名词听起来可能有点复杂,但其实设计和实现RESTful API远没有想象中那么难。...今天,我就和大家分享一下RESTful API的基础概念、设计原则以及实际项目中的实现过程,带大家从理论到实践,一次性搞懂!什么是RESTful API?在开始动手之前,咱们得先搞清楚这东西是什么。...REST(Representational State Transfer)是一种架构风格,而RESTful API则是遵循这种风格的应用程序接口。...404 Not Found:资源不存在。500 Internal Server Error:服务器错误。4. 返回结构化数据一般使用JSON格式返回数据,清晰易读。...通过遵循资源化、无状态化等设计原则,我们可以构建出语义清晰、易于扩展的API服务。同时,实际开发中的细节也很多,比如权限控制、错误处理、分页和过滤等。
而这些 API,又基本上都是基于 REST 的。 今天我们不去详细解释 REST,只说说 REST 应用中间的一些要点。 REST 应用之多,是有他的原因的。...注意语义 在团队开发 API 时,有一个严格的要求,就是 API 名称需要有语义感。语义感这个词是我自己生造的,不是什么高大上的东西,就是要求写的 API 名称能使用正确的英文和次序,能够让人看得懂。...这样,所有的开发人员,会在相同的认识层次上理解问题的状态和原因,从而使得 API 变得普遍易懂、一致和标准。 这不是 REST 的标准,但应该作为我们开发 REST 的标准。...clientId = 23 的记录是否存在,如果不存在,返回响应 404 如果找到记录,则返回响应 200 这只是一个简单的例子,真实的编程时,需要考虑的会更多。...而且,除了状态码外,还要返回相应的错误消息,例如:输入参数 clientId 没有输入、ID 为 23 的数据记录不存在,等等。
虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过HTTP实现的REST。...资源与URI 统一资源接口 资源的表述 资源的链接 状态的转移 2. 1 资源与URI REST全称是表述性状态转移,那究竟指的是什么的表述? 其实指的就是资源。...的 确有这种情况,特别是一些比较古老的基于浏览器的客户端,只能支持GET和POST两种方法。 在实践上,客户端和服务端都可能需要做一些妥协。...响应代码的处理有必要吗? HTTP 的响应代码可用于应付不同场合,正确使用这些状态代码意味着客户端与服务器可以在一个具备较丰富语义的层次上进行沟通。...下面我们来看一些实践上常见的设计: 在URI里边带上版本号 有些API在URI里边带上版本号,例如: http://api.example.com/1.0/foo http://api.example.com
虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过HTTP实现的REST。...资源与URI 统一资源接口 资源的表述 资源的链接 状态的转移 2. 1 资源与URI REST全称是表述性状态转移,那究竟指的是什么的表述? 其实指的就是资源。...的确有这种情况,特别是一些比较古老的基于浏览器的客户端,只能支持GET和POST两种方法。 在实践上,客户端和服务端都可能需要做一些妥协。...响应代码的处理有必要吗? HTTP的响应代码可用于应付不同场合,正确使用这些状态代码意味着客户端与服务器可以在一个具备较丰富语义的层次上进行沟通。...下面我们来看一些实践上常见的设计: 在URI里边带上版本号 有些API在URI里边带上版本号,例如: http://api.example.com/1.0/foo http://api.example.com
很多系统只是号称是REST API,实际上并没有满足REST的架构约束条件。...而这种转移是体现在表述上的,所以称为表述性状态转移。 怎样才算是符合REST架构风格 Roy Fielding在他的论文里通过对一个空架构不断追加约束条件,从而推导出了REST架构风格。...404(Not Found):表示资源不存在。 405(Method Not Allowed):表示该资源不支持当前的请求方法。 409(Conflict):表示当前请求的某前置条件不符合。...另外,REST是“可编程”的Web服务,也就是说,程序可以根据REST API的返回内容,进行下一步的操作。例如,查询author资源,下一步可能是要查询该作者著作的book资源。...6) 其他 统一接口还有其他方面的原则,本文就不细讲了,感兴趣的朋友可以阅读Fielding的论文。 2. 无状态 无状态约束条件是指两次请求之间不存在依赖关系,每一次请求都包含完整的状态信息。
REST 规范中有如下几个核心: REST 中一切实体都被抽象成资源,每个资源有一个唯一的标识 —— URI,所有的行为都应该是在资源上的 CRUD 操作 使用标准的方法来更改资源的状态,常见的操作有:...资源的增删改查操作 无状态:这里的无状态是指每个 RESTful API 请求都包含了所有足够完成本次操作的信息,服务器端无须保持 Session 无状态对于服务端的弹性扩容是很重要的。...所以在实际开发中并不能严格按照 REST 规范来写 API,RPC 就不存在这个问题 RPC 屏蔽网络细节、易用,和本地调用类似 这里的易用指的是调用方式上的易用性。...其实业界普遍采用的做法是,内部系统之间调用用 RPC,对外用 REST,因为内部系统之间可能调用很频繁,需要 RPC 的高性能支撑。对外用 REST 更易理解,更通用些。...本教程不是讨论微服务,所以不存在微服务之间的高频调用场景,此外 REST 在实际开发中,能够满足绝大部分的需求场景,所以 RPC 的性能优势可以忽略,相反基于 REST 的其他优势,笔者更倾向于用 REST
dudu的 HttpClient + ASP.NET Web API, WCF之外的另一个选择 讨论的人很多,说明RESTful API也开始在.NET 社区中得到重视,其中的回复有很多对REST不正确的观点...或许大家手边的.NET系统整合都还是使用WCF(甚至Web Service)进行跨主机沟通,但是当微软在ASP.NET MVC 4 Beta里也开始推广REST架构的ASP.NET Web API。...上面的文章建议大家认真的读一下,这里我们简要的介绍下REST 做入门介绍,理解整个 REST 能让我们在 ASP.NET Web API 的路上更顺畅。 REST是什么?...回想,你如何连上我的 博客,你可能通过浏览器直接输入 www.cnblogs.com/shanyou 此域名来到达首页,也能用书签或网络上的链接,经点击后来连上我的博客。...或新增一个含 id 资源(如果 id 不存在) DELETE Delete 删除一个资源 RESTFUL WEB SERVICE RESTful Web Service (又称 RESTful Web
使用杜威十进制图书分类法是可行的,但我们也可以想象自定义分组。问题的关键在于,这种“信息空间”可能是无限的,而且可能收到人们实际关心的信息类型影响。...这为服务器的可见性和无状态创造了条件,并为扩展系统和识别发送的请求内容提供了理想特性。对于缓存结果也非常有帮助。...对之前已删除的资源或不存在的资源可能需要一些额外处理,两种情况都应该返回404。一些安全策略要求为不存在的和已删除的资源返回404,这样 DELETE 请求就不会泄漏有关资源是否存在的信息。...响应码 HTTP 响应码为我们在客户端和服务器之间的对话提供了丰富的请求状态信息。大多数人只熟悉一般意义上的200、403、404或者500,但是还有更多有用的代码可供使用。...表1 成功的客户端请求 ? 表2 — 客户端重定向请求 表 3 中的响应代码表示客户端请求无效,如果条件不发生变化,重新请求仍无法处理。这些故障可能有请求格式错误、未授权的请求、请求的资源不存在等。
然而,通过例子代码来学习REST有非常大的局限性。因为REST并不是一种具体的技术,也不是一种具体的规范,REST其实是一种内涵非常丰富的架构风格。...通过例子代码来学习REST,除了学习到一种有趣的Web开发技术之外,并不能全面深入的理解REST究竟是什么。...互联网环境与企业内网环境有非常大的差别,最主要的差别是两个方面: 可伸缩性需求无法控制:并发访问量可能会暴涨,也可能会暴跌。...一切都有可能变化,只有超媒体的状态迁移语义能够长期保持稳定。...当然不是,正如Fielding在博士论文中阐述的那样,评价一种软件架构的优劣,不能脱离开软件的具体运行环境。永远不存在适用于任何运行环境的、包治百病的银弹式架构。
因为尽管 REST 备受推崇,它遭遇的误解和歪曲还是非常普遍的。 1REST 是什么? REST 是 REpresentational State Transfer(表征状态转移)的简写。...甚至连 REST 这个古怪的名称——表征状态转移——也能看出含义了。...他澄清说: ……如果应用程序状态的引擎(以及 API)不是由超文本驱动的,则它不能是 RESTful 的,也不能是 REST API。...它们将被版本化,并且它们的静态接口可能会在 OpenAPI 或其他流行的 IDL 约定中记录。更一般而言,HTTP API 并不适合轻量级解决方案、最新的代码生成和其他自动化工具链。...超媒体 API 也可以是 HTTP API,但这不是必需的。 截至 2021 年,虽然存在一些 bug 多多的演示应用,但真正的,由超媒体驱动的智能客户端的开发仍局限在纯粹的学术尝试层面。
REST的概念是将API结构分离为操作和资源。使用HTTP方法GET、DELETE、POST和PUT操作资源。 设计糟糕的REST API = 浪费时间!...增加学生的API路径:/addNewStudent,包含操作addNew以及资源名称Student。 正确的方法是什么? /schools ,是一个很好的例子,不包含任何动作。...PUT方法请求服务器更新资源或创建资源(如果不存在)。 /schools/清华/students/张三, 对清华大学下的学生资源中,更新或者创建张三。...6 使用HTTP状态码 当客户端通过API向服务器发出请求时,客户端应该知道反馈,无论是失败,成功还是请求错误。 HTTP状态代码是一系列标准化代码,针对http请求的可能会发生的各种情况。.../v2/schools/清华 在API上加入版本信息可以有效的使用户访问正确的API,v2是新开发功能,开发阶段,让所有用户访问v1,等开发完成统一切到v2。
Restful API 则是指符合REST架构约束的API,关于这个词在早年前其实已经非常流行,但大多数开发者对其仍然 处于观望状态,并不一定会立即采用。...在Restful 风格的API 接口定义中,往往会引用 HTTP 状态码用于表示不同的结果,比如一些错误的状态类型。...这里我们对Customer、Pet 进行存在性校验,若资源不存在返回404_NotFound。...关于Swagger Swagger是目前非常流行的一个API设计开发框架(基于OpenApi), 可用于API的设计、管理、代码生成以及Mock测试等。...目前Swagger的应用非常广,其涵盖的开源模块也比较多,这里将使用swagger-ui实现API在线DOC的生成。
了解到以上内容, 那REST 世界的"交通灯"规则是什么样的?...同时客户端也应作出相应的配合,客户端请求时,也要明确告诉服务器,可以接受 JSON 格式,即请求的 HTTP 头的 ACCEPT属性也要设成 application/json,多渠道调用可能会存在相同资源需要有不同的...producer 类型的情况存在 响应状态码 很多后端开发人员可能受开发框架所限,或者返回数据封装形式不够好,经常会给前端人员不是很友好的 HTTP 状态码,比如 response 有 error,却给出...比如: 异步操作:服务器已接收到请求,但是还未处理,但是会在未来处理 资源已经存在,没有创建新的资源 (有些业务可能会返回错误信息"您创建的数据已存在",所以这种情景没有明确的规定,符合自己的业务需求即可...403Forbidden:用户通过了身份验证,但是不具有访问资源所需的权限 404NotFound:所请求的资源不存在,或不可用 415UnsupportedMediaType:客户端要求的返回格式不支持
本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义。 我们先来看下这个表: ?...创建文档时,如果索引不存在,ES 会自动创建对应的 index 和 type。 接下来看下另一种创建文档的方式,不指定 id 创建文档,HTTP 请求也变为了 POST,具体的请求如下: ?...下面我们来实际操作下,输入以下代码执行,就可以得到文档 id 为 1,3 的数据。 ? 运行结果如下: ? 在介绍完文档的一些操作,最后让我们看下 REST API 常见错误返回有哪些吧!...REST API 常见错误返回 刚才在演示中,当查询文档 id 不存在的时候就会报 404 错误,而且 ES 还有各种各样的返回,下面通过一个表格了解下: ?...总结 本文主要介绍了文档的 CRUD 操作,还有 Bulk API、_mget API,这些批量操作可以提高 API 调用性能,但是不要一次发送过多数据,也有可能会对 ES 集群产生过大的压力,导致性能有所下降
Rest Rest:按照Http的语义来使用HTTP协议的一种风格,Rest全称Representational State Transfer(表现层状态转换)。...ASP.NET Core WebAPI接口 在ASP.NET WebAPI中我们也能看到Rest的风格,理想很丰满,显示很骨干。...如果我们严格的按照Rest风格设计接口的话,需要对技术人员有很高的要求,需要去划分不同业务不同的资源定位,而且有些业务也找不到准确的谓词去定义,响应状态码有限无法表达准确的意思,或者是时间上来不及等等原因...而在Rest 中Post通常用201返回新增成功,delete 删除的数据不存在返回404,但是404大家知道可能也许是url错误,所以表诉不清。...因此我们在实际设计中可能会进行Rest裁剪,我们既使用RPC的返回结果,同时多用准确的状态码,不用什么都返回200。
对于Rest Api中要如何处理业务错误这个事情,这并不算是一个非常大的问题。事实上,对大多数架构师来说,可能很多人都不会太在意这个点。...1. http响应码 我们都知道,http响应码是有它的标准含义的,一般而言,笔者建议遵守这个标准,http响应码从1XX到5XX都有其特定的意义,但在Rest Api中,使用最多的可能还是以2XX和4XX...2.2 笔者的思考 最近在设计一个API时,笔者本来也按旧有的方式,继续按照上述做法来弄,因为以前是这样弄的。但后面仔细想想,就问了下自己:为什么这样,理由是什么?...事实上,我们看下4XX这个类别,可以明显感知到,它本身就包含了一些业务错误,比如权限不够,被禁止,资源不存在等,这些本身也可以算到业务错误的一部分。...再参考一些主流的API的设计,也可以看出其对此点的设计方式 Github Api ? ZOOM API ?