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协议对你的插件进行开源,这样不仅能让社区插件生态更加丰富,也让你的插件有被他人改进的机会