From 1392b98a07713d4cb62fdce56392c9ebc6295646 Mon Sep 17 00:00:00 2001 From: qianmoQ Date: Sun, 19 Jan 2025 20:03:08 +0800 Subject: [PATCH] =?UTF-8?q?chore(=E5=8F=91=E5=B8=83):=20=E5=8F=91=E5=B8=83?= =?UTF-8?q?=202025.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/content/release/latest.md | 61 +++++++++++++++++++ docs/pageforge.yaml | 4 +- lightcall-core/pom.xml | 2 +- .../lightcall/proxy/LightCallProxy.java | 19 +++--- pom.xml | 2 +- 5 files changed, 75 insertions(+), 13 deletions(-) create mode 100644 docs/content/release/latest.md diff --git a/docs/content/release/latest.md b/docs/content/release/latest.md new file mode 100644 index 0000000..417833d --- /dev/null +++ b/docs/content/release/latest.md @@ -0,0 +1,61 @@ +--- +title: 2025.1.0 (最新) +--- + +LightCall 1.0 正式发布:轻量级声明式服务调用框架 + +--- + +亲爱的开发者们: + +我们很高兴地宣布 LightCall(版本 2025.1.0)正式发布。LightCall 是一个全新的轻量级声明式服务调用框架,旨在让服务调用变得像编写接口一样简单直观。通过简洁的注解方式,开发者可以以最小的开发成本实现优雅的服务访问。 + +### 核心特性 + +1. 完整的 HTTP 方法支持 + - 支持标准 HTTP 方法:GET、POST、PUT、DELETE、PATCH、HEAD、OPTIONS + - 支持自定义请求处理器,满足特殊场景需求 + - 支持请求体(Body)解析和自定义媒体类型 + +2. 灵活的请求配置 + - 支持 @Header 和 @Headers 注解进行请求头配置 + - 支持路径参数和查询参数(@Param)配置 + - 支持自定义媒体类型配置 + +3. 强大的扩展机制 + - 支持可配置优先级的拦截器机制 + - 支持自定义错误处理器 + - 支持代理自动资源释放 + +4. 模块化设计 + - 核心功能模块化拆分 + - 独立的处理器设计 + - 简化的处理器逻辑实现 + +### 文档与支持 + +- 官方网站:[https://lightcall.devlive.org](https://lightcall.devlive.org) +- 项目仓库:[https://github.com/devlive-community/lightcall](https://github.com/devlive-community/lightcall) +- 完整的使用文档和示例 +- 详细的项目贡献指南 + +### 部署信息 + +该版本已发布至 Maven 中央仓库,开发者可以直接在项目中使用。 + +### 后续规划 + +这是 LightCall 的第一个正式版本,我们将持续改进和优化框架功能,欢迎开发者们: +- 提出建议和反馈 +- 参与项目贡献 +- 报告使用中遇到的问题 + +### 鸣谢 + +感谢所有关注和支持 LightCall 项目的开发者,我们将继续努力,为开发者提供更好的服务调用解决方案。 + +--- + +如需了解更多信息,请访问我们的官方网站或 GitHub 仓库。 + +2025年1月19日 \ No newline at end of file diff --git a/docs/pageforge.yaml b/docs/pageforge.yaml index 898fe51..9f9c3db 100644 --- a/docs/pageforge.yaml +++ b/docs/pageforge.yaml @@ -40,4 +40,6 @@ nav: - /usage/delete - /usage/patch - /usage/options - - /usage/head \ No newline at end of file + - /usage/head + - 发布日志: + - /release/latest \ No newline at end of file diff --git a/lightcall-core/pom.xml b/lightcall-core/pom.xml index df29e65..efd721f 100644 --- a/lightcall-core/pom.xml +++ b/lightcall-core/pom.xml @@ -4,7 +4,7 @@ org.devlive.lightcall lightcall - 2025.1.0-SNAPSHOT + 2025.1.0 lightcall-core diff --git a/lightcall-core/src/main/java/org/devlive/lightcall/proxy/LightCallProxy.java b/lightcall-core/src/main/java/org/devlive/lightcall/proxy/LightCallProxy.java index 9837709..43c25a2 100644 --- a/lightcall-core/src/main/java/org/devlive/lightcall/proxy/LightCallProxy.java +++ b/lightcall-core/src/main/java/org/devlive/lightcall/proxy/LightCallProxy.java @@ -29,9 +29,9 @@ public class LightCallProxy implements InvocationHandler, AutoCloseable { + private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(); // 静态共享 private final OkHttpClient client; private final LightCallConfig config; - private final ObjectMapper objectMapper; private final Map, MethodProcessor> processors; public LightCallProxy(LightCallConfig config) @@ -42,24 +42,23 @@ public LightCallProxy(LightCallConfig config) .connectTimeout(config.getConnectTimeout(), TimeUnit.MILLISECONDS) .readTimeout(config.getReadTimeout(), TimeUnit.MILLISECONDS) .build(); - this.objectMapper = new ObjectMapper(); this.processors = new HashMap<>(); // 注册默认的处理器 - registerProcessor(GetProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(PostProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(PutProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(DeleteProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(PatchProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(OptionsProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); - registerProcessor(HeadProcessor.create(client, objectMapper, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(GetProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(PostProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(PutProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(DeleteProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(PatchProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(OptionsProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); + registerProcessor(HeadProcessor.create(client, OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers())); // 注册自定义处理器 for (Class> processorClass : config.getProcessorClasses()) { MethodProcessor processor = ProcessorFactory.createProcessor( processorClass, client, - objectMapper, + OBJECT_MAPPER, config.getInterceptors(), config.getErrorHandlers() ); diff --git a/pom.xml b/pom.xml index 5fcfcdc..b59e81f 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.devlive.lightcall lightcall - 2025.1.0-SNAPSHOT + 2025.1.0 pom lightcall