[]
        
(Showing Draft Content)

服务端Api开发

什么是服务端Api?

活字格的服务端API类似于网站的控制器,可以声明Post或Get或 Schedule Api。

在活字格中如何开发自定义服务端Api?

  1. 在自定义插件项目的解决方案点击右键,在右键菜单中选择 “添加”-> “现有项目”。

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

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

    修改后:

  4. 在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");
            }
        }
    }
    
  5. 代码解释:定义了一个MyServerApi 类,声明了一个 Get Api,被调用时返回字符串 “This is my api”,如果标注 “PostAttribute”可以声明Post请求。

  6. 编译工程。

如何让活字格加载自定义服务端API

活字格有三种加载自定义服务端API的方式

通过“自定义Web Api ”上传服务端API DLL

测试, 运行网站,输入在 Forguncy 后输入 /customapi/myserverapi/mytestapi 访问。

给插件添加自定义服务端API

  1. 在MyPlugin工程中,右键点击依赖项,选择“添加项目引用”。

  2. 选择 MyPlugin.Server,单击确定。

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

完成后,只要网站使用了任意插件,都会加载自定义服务端API。

拷贝自定义服务端API到活字格服务器的指定目录

  1. 把 MyPlugin.Server.dll 拷贝到 C:\Users\Public\Documents\ForguncyServer\【应用名】\MiddlewareInjector 目录下。
  2. 重启后应用会自动加载 MiddlewareInjector 目录下的自定义服务端API。

此方法的好处是不需要重新发布应用即可替换自定义服务端API。