什么是服务端Api?
活字格的服务端API类似于网站的控制器,可以声明Post或Get或 Schedule Api。
在活字格中如何开发自定义服务端Api?
- 在自定义插件项目的解决方案点击右键,在右键菜单中选择 “添加”-> “现有项目”。
- 找到当前项目中的“MyPlugin.Server.csproj”并选中,添加自定义中间件的模板工程。
- 添加后可以看到,在MyPlugin.Server工程里有两个文件,MyPluginMiddleware.cs 和 MyPluginMiddlewareInjector.cs, 删除这两个文件,添加一个ServerApi 文件。
修改后: 在MyServerApi.cs 添加以下代码:
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。