-
Notifications
You must be signed in to change notification settings - Fork 3
自定义资源创建接口
优秀的小杨同学 edited this page Jun 21, 2023
·
2 revisions
资源创建是 Sonolus Web 端的另一个核心功能。接下来,本页面将向您介绍如何自定义资源创建接口。
见 自定义资源创建配置文件 和 Search 类
{
"options": [
{
"query": "name",
"name": "Name",
"type": "text",
"placeholder": "Enter level name..."
}
]
}
本代码默认处理所有满足 ?name={{name}}
的请求。
以修改关卡创建接口为例,修改 sonolus/levels_create.h
中的 sonolus_levels_create
lambda 函数。
具体信息见下面的参考代码:
/**
* @brief 关卡创建接口函数
*/
auto sonolus_levels_create = [](client_conn conn, http_request request, param argv){
// 强制使用 POST 方法进行交互
if (request.method != "POST") {
putRequest(conn, 405, __api_default_response);
send(conn, json_encode(msg[405]));
exitRequest(conn);
}
// 检查用户是否已登录
if (!checkLogin(request)) {
putRequest(conn, 401, __api_default_response);
send(conn, json_encode(msg[401]));
exitRequest(conn);
}
// 获取 POST 参数信息
auto $_POST = postParam(request);
string name = $_POST["name"];
// 创建一个名为 name 的关卡(此处为伪代码,具体写法参见源代码)
createLevel({name});
// 返回响应头以及响应主体
putRequest(conn, 200, __api_default_response);
send(conn, json_encode(msg[200]));
exitRequest(conn);
};
代码编写完毕后,退出代码编辑器,使用 手动编译 中的指令重新编译 Sonolus 服务主程序和插件即可。
最后更新时间: 2023.07.01