使用SpringBoot快速构建Web API

  • 内容
  • 评论
  • 相关

Dubbo 框架现在在国内的中小企业当中已经成为 Java 生态下服务化的事实标准,出现这种状态的原因很多,比如 Dubbo 框架设计优秀、文档和资料丰富、配置灵活、特性丰富等,但最主要的,我认为是 Java 开发人员对速度这一因素的痴迷。

不可否认,Dubbo 框架设计和实现之初就将其自身定位为一款基于 TCP 长连接通信的高性能服务治理框架,但是,对于很多中小企业来说,不管从速度还是并发度,根本就没有到非要使用像 Dubbo 这样基于 TCP 长连接服务框架的程度。

笔者认为,不分场景和现状盲目选型 Dubbo 框架,或许就是 Dubbo 框架成为 java 生态下服务治理框架事实标准的原因。

Dubbo 框架虽然有很多优点,也确实面向高强度的互联网应用场景,且在多家知名的互联网企业的生产环境得到验证,但也并非没有缺点:

  • 只限于 Java 应用之间的服务调用。
  • 服务访问方需要依赖 API 以及关联依赖,在很多场景下导致依赖管理混乱的问题。
  • 核心项目人员转岗或者离职之后,项目不再有人专职投入维护和升级,虽然功能够用,但任何一个开源项目无推动者,无活跃社区的情况下,其生命走向只有一个,而这几乎是国内开源项目的共同宿命。

作为一名理性的研发人员,在项目技术选型的时候,需要综合考虑多种方案的优缺点,并根据现状进行权衡,实际上,对于大部分项目来说,性能可能并非技术选型的核心因素,开放和互通或许才是。

是要以互通性作为核心因素进行技术选型并构建一套开放繁荣的生态体系,还是以性能为核心因素进行技术选型构建一套封闭高效的生态体系,需要大家灵活把握,而本节我们将更多以 Web API 的形式,向大家展示如何基于 SpringBoot 构建一套开放、互通、稳定的 Web API 微服务体系。

使用 SpringBoot 构建 Web API 有几种选择,要么使用 spring-boot-starter-jersey 构建 RESTful 风格的 Web API,要么选择 spring-boot-starter-hateoas 构建更加有关联性和相对“智能”的 Web API,但笔者认为这些都有点儿“阳春白雪”。

对于大部分开发人员来说,HTTP 协议的 GET 和 POST 是直觉上最自然的选择,所以,我们选择使用最“下里巴人”的方式来构建 Web API。

Web API 强调统一和互通,所以,首先我们需要定义一套内外认知一致的 Web API 开发和访问规范,在 JSON 盛行、社群庞大的背景下,我们的 Web API 方案采用 JSON 作为数据交互格式并定义统一的协议格式,然后通过 HTTP 以及周边支持完成微服务的对外服务和开放访问。

1. 定义 Web API 规范

首先从服务访问的交互上来说,我们可以选择较为纯粹的 JSON RPC Over HTTP 的方式,如图 1 所示。

JSON RPC Over HTTP示意图
图 1  JSON RPC Over HTTP 示意图

本文标题:使用SpringBoot快速构建Web API

本文地址:https://www.hosteonscn.com/6095.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注