Skip to content

Sharw's API是什么?

Sharw's API (亦称SharwAPI) 是一款基于.NET开发的 模块化 Web API 服务。它本身不包含具体的业务功能,但它可以加载并运行各种插件来实现业务功能。

你可以把它想象成一个 Mod 加载器(如 Minecraft Forge)。你只需要把写好的插件文件放入文件夹,程序就会自动识别并运行它们,让你的服务拥有新的功能。

换言之,你可以利用它轻松实现一个你自己的API,而无需重复编写底层框架的轮子。

项目名字来源于项目所有者 SharwOrange橙夜 的名字,其中 Sharw 是生造词,可读 /ʃɑːr/

核心设计理念

SharwAPI 的设计初衷是为了解决 重复造轮子资源浪费 的问题。

像开发 Mod 一样开发

在传统的开发模式中,每写一个新功能(即使只是一个简单的 API 转发接口),你通常需要创建一个新项目,重新配置日志、路由、异常处理等基础代码

在 SharwAPI 中,主程序已经把这些基础工作都做好了。你只需要编写核心的业务逻辑(插件),然后让主程序去加载它。这让开发变得像搭积木一样简单。

单一进程,多项服务

对于个人开发者或家庭服务器(HomeLab)用户来说,很多需求只是 “几十行代码就能解决的小功能”。为了这些零碎的功能去维护一个个独立的 Docker 容器或服务进程,既浪费内存又难以管理。

SharwAPI 允许你将这些 “不足以独立成产品,但又切实需要” 的小工具,整合在同一个进程中运行:

  • 跨服务数据同步: 比如在修改 SSO 密码后,自动通过 API 将新密码同步更新到其他关联应用中。
  • 消息通知转发器: 接收 GitHub 或监控系统的 Webhook,经过格式化处理后,转发到你的 QQ 或微信上。
  • 简易内网工具: 比如一个只负责“发送网络唤醒 (WOL) 指令”的简单接口,或者一个提供局域网统一配置信息的 JSON 端点。

它们共享同一个主程序的端口和内存,无需额外部署,即写即用。

功能特性

  • 动态扩展: 采用插件化架构。将编译好的插件(DLL 文件)放入 plugins 目录即可运行,无需重新编译主程序。
  • 统一管理: 主程序统一接管日志记录、配置文件读取和路由分发,插件只需关注业务实现。
  • 跨平台运行: 基于高性能的 .NET 10 构建,可以在 Windows、Linux、macOS 等多种操作系统上稳定运行。

适用人群

SharwAPI 特别适合以下用户:

  • 自托管(HomeLab)玩家: 家中服务器资源有限,希望用最少的内存运行最多的服务。
  • 个人开发者 / 学生: 想要快速验证想法或练习编程,不想被繁琐的项目配置劝退。
  • 工具集开发者: 需要在一个统一的平台上集成多个小型工具。

社区生态

你可以前往插件市场寻找你想要的插件

本项目中,API本体(Core API)采用GPL-3.0协议开源,实现插件的接口层则会采用LGPL-3.0协议开源(官方实现插件也会采用LGPL-3.0协议开源)

虽然我们 不要求 所有插件必须使用LGPL-3.0协议开源(你可以使用其他开源许可证或是不开源,甚至进行销售),但我们 建议 你使用LGPL-3.0协议对你的插件进行开源,这样不仅能让社区插件生态更加丰富,也让你的插件有被他人改进的机会