Analysis V4

简介

API 接入点:https://analysis.ipe.wjghj.cn/apiopen in new window

V4 是首个使用 serverless 技术的版本,API 结构有破坏性变更,数据结构无变化。

入口文件

GET /api

获取数据

GET /api/auery/:type

type=wiki

获取 wiki 站点数据

Send

GET /api/query/wiki?sitename=[sitename]&siteurl=[siteurl]&prop=[prop]&sortby=[sortby]&sortorder=[sortorder]

Params

以下两个为 wiki 筛选,仅生效一条,优先级从高到低排序。可选,若未指定则搜索全部 wiki。

  • siteurl {String<URL>}
    • 若指定,以 url 为键搜索数据,确切匹配
  • sitename {String}
    • 若指定,以 sitename 为键搜索数据,模糊匹配,接受正则表达式,若有重名 wiki 将返回多个数据

以下为项目筛选,可选。

  • prop {String}
    • @default "url|sitename|_total"
    • 若指定,仅显示指定数据,多个以|隔开
    • url, sitename, _total, date, functions, users
  • sortby {String}
    • 若指定,按键排序 wiki array
  • sortorder {Number}
    • 排序规则,预设顺序
    • >= 0 顺序
    • < 0 倒序

Response

application/json

{
    "status": true, // false
    "query": [
      // wikis...
    ],
    errors: [
      // if error
    ],
    // Server informations...
}

type=date

暂未实装。

提交数据

Send

POST /api/submit

application/json
{
  "url": "<wgServerName><wgArticlePath>",
  "sitename": "<wgSiteName>",
  "username": "<wgUserName>",
  "functionID": "<inpageedit_function_name>"
}

所有数据将会被验证:

  • url 必须为合法的 URL
  • sitename, username
    • 将处理潜在的 xss 风险,<(.+?)>&lt;$1&gt;
    • dev 关键词屏蔽,防止冒犯性词汇
  • username 不允许不合法的用户名,不可出现以下符号:#&?=[]{}
  • functionID 有白名单机制

Response

application/json

{
  "status": true, // false
  "submit": {
    // submitted data..
  },
  errors: [
    // if error
  ],
  // Server informations...
}

数据结构

⚠️注意:由于技术原因,sitenameusername中的英文句号.将被转义为{dot}储存

application/BSON

{
  "_id": ObjectId("<ID>"),
  "url": "<wgServer><wgArticlePath>",
  "sitename": "<wgSiteName>",
  "_total": 0,
  "date": {
    "<Y-m-d>": {
      "_total": 0,
      "<inpageedit_function_name>": 0
    }
  },
  "functions": {
    "<inpageedit_function_name>": 0
  },
  "users": {
    "<wgUserName>": {
      "_total": 0,
      "date": {
        "<Y-m-d>": {
          "_total": 0,
          "<inpageedit_function_name>": 0
        }
      },
      "functions": {
        "<inpageedit_function_name>": 0
      }
    }
  }
}