Appearance
服务端Api开发
什么是服务端Api?
活字格的服务端API类似于网站的控制器,可以声明Post或Get或 Schedule Api
在活字格中如何开发自定义服务端Api?
- 在自定义插件项目的解决方案点击右键,在右键菜单中选择 “添加”-> “现有项目”

- 找到当前项目中的“MyPlugin.Server.csproj”并选中,添加自定义中间件的模板工程

- 添加后可以看到,在MyPlugin.Server工程里有两个文件,MyPluginMiddleware.cs 和 MyPluginMiddlewareInjector.cs,** 删除**这两个文件,添加一个ServerApi 文件

修改后: - 在MyServerApi.cs 添加以下代码
csharp
using GrapeCity.Forguncy.ServerApi;
using Microsoft.AspNetCore.Http;
using System.Threading.Tasks;
namespace MyPlugin.Server
{
public class MyServerApi : ForguncyApi
{
[Get]
public async Task MyTestApi()
{
await this.Context.Response.WriteAsync("This is my api");
}
}
}- 代码解释:定义了一个MyServerApi 类,声明了一个 Get Api,被调用时返回字符串 “This is my api”,如果标注 “PostAttribute”可以声明Post请求。
- 编译工程
如何让活字格加载自定义服务端API
活字格有三种加载自定义服务端API的方式
通过“自定义Web Api ”上传服务端API DLL
测试, 运行网站,输入在 Forguncy 后输入 /customapi/myserverapi/mytestapi 访问
给插件添加自定义服务端API
- 在MyPlugin工程中,右键点击依赖项,选择“添加项目引用”

- 选择 MyPlugin.Server 点击确定

- 修改 PluginConfig.json, 添加 serverApiAssembly 配置,值为 MyPlugin.Server.dll

- 完成后,只要网站使用了任意插件,都会加载自定义服务端API
拷贝自定义服务端API到活字格服务器的指定目录
- 把 MyPlugin.Server.dll 拷贝到 C:\Users\Public\Documents\ForguncyServer\【应用名】\MiddlewareInjector 目录下
- 重启后应用会自动加载 MiddlewareInjector 目录下的自定义服务端API
次方法的好处是不需要重新发布应用即可替换自定义服务端API
更新: 2022-12-25 15:26:42
原文: https://www.yuque.com/robert-bh51n/ea8l6c/tg6z414ua34yen79