Skip to content

基础能力

此部分为接入方必须实现的最少回调接口。请求方为文曲,调用接入方实现的如下接口,接口地址接入方可自定义,文档只是提供示例。

公共响应体

说明:此为所有回调接口响应的结构体。

参数:

字段位置必须类型说明
Content-Typeheader必须String请求体为 json 格式,application/json
codebody必须String0-成功,其他为错误
msgbody必须String错误code码,可以附带描述信息
databody必须String具体业务数据

返回值示例:

json
{
	"code": "0",
	"msg": "",
	"data": {
		// 具体业务数据
	}
}

获取文件信息

接口:POST /file/info

说明:该接口用于获取文件的基本信息,在文档打开过程中,需要这些基本信息作为文件的标识与展示。

参数:

字段位置必须类型说明
W-Access-Tokenheader必须String当前用户 token
W-File-Idheader必须String当前文档 id
W-Client-Idheader必须String客户端 id,不同浏览器值不同,可用来标识一个用户是否在同一个浏览器
Content-Typeheader必须String请求体为 json 格式,application/json
callbackParamsbody非必须String获取编辑链接时接入方若提供则回调时携带

请求体示例:

json
{
  "callbackParams": {
    "key": "value"
  }
}

返回值:接入方需要实现的响应格式

字段必须类型说明
file.id必须String当前文档 id
file.name必须String当前文档名称包含文档后缀名
file.size必须long当前文档大小
file.downloadUrl必须String当前文档的下载地址,调用该地址时会携带 W-Access-Token
userAcl.rename必须byte当前用户对当前文档是否可以执行重命名操作,1-开启,0-关闭
userAcl.copy必须byte当前用户对当前文档是否可以执行复制操作,1-开启,0-关闭
userAcl.print必须byte当前用户对当前文档是否可以执行打印操作,1-开启,0-关闭
userAcl.download必须byte当前用户对当前文档是否可以执行下载操作,1-开启,0-关闭
userAcl.comment必须byte当前用户对当前文档是否可以执行批注操作,1-开启,0-关闭
user.id必须String当前用户 id
user.name必须String当前用户名称,会显示在页面中展示当前文档协作人员
user.permission必须String当前用户对当前文档权限:read 只读,write 编辑
user.image非必须String当前用户头像地址,若没有页面提供默认显示,该地址不能鉴权
watermark.type非必须byte水印类型:0-无水印; 1-文字水印
watermark.value非必须String文字水印的内容比如当前用户名称,当type为1时此字段必选
watermark.fillstyle非必须String水印透明度
watermark.font非必须String水印内容使用的字体
watermark.rotate非必须int水印旋转度
watermark.horizontal非必须int水印水平间距
watermark.vertical非必须int水印垂直间距

返回值示例:

json
{
	"code": "0",
	"msg": "",
	"data": {
		"file": {
			"id": "exampleId",
			"name": "example.docx",
			"size": 2000,
			"downloadUrl": "http://ip:port/file?fid=f132aa30a87064",
			"userAcl": {
				"rename": 1,
				"copy": 1,
				"print": 1,
				"download": 1,
				"comment": 1
			},
			"watermark": {
				"type": 1,
				"value": "水印",
				"font": "bold 16px Serif",
				"fillstyle": "rgba( 192, 192, 192, 0.3 )",
				"rotate": 30,
				"horizontal": 50,
				"vertical": 100
			}
		},
		"user": {
			"id": "1000",
			"name": "admin",
			"permission": "write",
			"avatarUrl": "http://ip:port/id=1000"
		}
	}
}

示例代码:

java
@PostMapping("/file/info")
public Result fileInfo(@RequestHeader("W-Access-Token") String token, @RequestHeader("W-File-Id") String fileId,
                       @RequestHeader("W-Client-Id") String clientId, @RequestBody FileInfoReq req) {
    // 构建响应结构体
}

文件重命名

接口:POST /file/rename

说明:该接口用于在页面上重命名文档。

参数:

字段位置必须类型说明
W-Access-Tokenheader必须String当前用户 token
W-File-Idheader必须String当前文档 id
Content-Typeheader必须String请求体为 json 格式,application/json
newFileNamebody必须String修改后的文件名称,不含后缀名
callbackParamsbody非必须String获取编辑链接时接入方若提供则回调时携带

请求体示例:

json
{
  "newFileName": "新文件名称",
  "callbackParams": {
    "key": "value"
  }
}

返回值:无

返回值示例:

json
{
  "code": "0",
  "msg": ""
}

示例代码:

java
@PostMapping(value = "/file/rename")
public Result rename(@RequestHeader("W-Access-Token") String token, @RequestHeader("W-File-Id") String fileId,
                     @Validated @RequestBody RenameReq req) {
    // 构建响应结构体
}

文件保存

接口:POST /file/save

说明:文档内容变更后保存,同步新文档。

参数:

字段位置必须类型说明
W-Access-Tokenheader必须String当前用户 token
W-File-Idheader必须String当前文档 id
Content-Typeheader必须String表单提交 multipart/form-data
filebody必须File变更后的文件
saveTypebody必须String触发机制:手动保存(CTRL+S)-manual,关档保存-closesave
callbackParamsbody非必须String获取编辑链接时接入方若提供则回调时携带

请求体示例:form 表单提交

返回值:无

返回值示例:

json
{
  "code": "0",
  "msg": ""
}

示例代码:

java
@PostMapping(value = "/file/save")
public Result save(@RequestHeader("W-Access-Token") String token, @RequestHeader("W-File-Id") String fileId,
                   @RequestParam("file") MultipartFile file, FileSaveReq req) {
    // 构建响应结构体
}