Analytics V5

提示

InPageEdit Analysis 从此版本正式更名为 InPageEdit Analytics

注意

此版本相较上一版本,API 结构有破坏性变更,数据结构有变化。

V4 数据将被抛弃。

简介

API 接入点:

获取数据

/api/query/:type

通用字段

  • 过滤 prop {string}
    • 通过|分隔,以!开头表示过滤、否则表示显示
    • 例如:foo|!bar,显示foo字段、过滤bar字段
    • 当值为*时,显示所有字段
  • 排序 sort {string}
    • 通过|分隔,以!开头表示倒序、否则为正序
    • 例如:foo|!bar,首先以foo字段按顺序排列,相同的按bar字段倒序排列

通过站台(wiki)查询数据

GET /api/query/wiki

interface QueryWikiParams {
  siteUrl?: string // 不提供时查询全部 wiki
  limit?: number // 大于等于 1 且小于等于 100 的整数;预设 10
  offset?: number // 大于等于 0 的整数;预设 0
}
返回结果
interface QueryWikiResult {
  code: number
  message: string
  body: {
    query: {
      _total: number
      siteUrl: string
      siteName: string
      features: {
        featureID: string
        count: number
      }[]
      users: {
        userName: string
        count: number
      }[]
    }[]
  }
  limit: 10
  offset: 0
  hasNext: false
}

通过用户(user)查询数据

GET /api/query/user

interface QueryUserParams {
  userName: string // 可以以 | 分隔查询多个
  siteUrl: string
}
返回结果
interface QueryUserResult {
  code: number
  message: string
  body: {
    query: {
      userName: string
      siteUrl: string
      siteName: string
      _total: number
      features: {
        featureID: string
        count: number
      }[]
    }[]
  }
}

通过时间(date)查询数据

GET /api/query/date

interface QueryDateParams {
  // 可用于 Date 构造函数的字符串
  from: string
  to?: string // 预设为请求的当下
  interval?: 'year' | 'month' | 'day' | 'hour' // 预设为 day
}
返回结果
interface QueryDateResult {
  code: number
  message: string
  body: {
    query: {
      _total: number
      date: string
      users: {
        userName: string
        count: number
      }[]
      sites: {
        featureID: string
        count: number
      }[]
    }[]
  }
  fromTime: string // ISOString
  toTime: string // ISOString
}

提交数据

POST /api/submit

interface SubmitParams {}
返回结果
interface SubmitResult {
  code: number
  message: string
  body: {
    submit: {
      acknowledged: boolean
      insertedId: string
    }
  }
}

错误返回

当遇到请求未能正确完成的情况时,一定会返回非 200 状态码,并一般包含错误说明。

返回结果
interface ErrorResult {
  code: number // 一般不是 200
  message: string
  body: any
  error: any
}

常见错误代码

  • 400 Bad Request 客户端错误:请求时,提交的字段类型有误/缺少必要字段
  • 405 Method not allowed 客户端错误:请求时,使用了不允许的请求方法,例如有些接入点要求POST方法
  • 500 Internal Server Error 服务端错误:serverless 函数超时/MongoDB 操作失败/小鱼君的带宽用完了