我是 REST API 设计的新手,我有两个关于我正在尝试编写的 API 的问题。
我想创建一个服务,提供 PDF 文件编码,在数据库中创建一个对象。
我当前的服务如下所示:
@RequestMapping(value = "/create", method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public String create(@RequestBody byte[] pdf)
我的问题是:
- 是否“推荐”将 byte[] 与 REST API 一起使用?PS:该服务将被 Web 客户端和工具包使用。
- 我尝试使用 springfox 来记录我的 API。UI 工具不允许我提交二进制数据。
我使用了以下注释
@ApiImplicitParams({
@ApiImplicitParam(name = "pdf", value = "PDF encoding", required = true,
allowMultiple = true,
paramType = "body", dataType = "byte")
})
生成的 JSON 是:
{"type":"array","items":{"type":"string","format":"byte"}}
然而,UI 界面显示 PDF 编码的文本区域,并将任何内容作为字符串提交。(例如,如果我提交值“5”,服务器会收到 [53])。
你知道我在这个级别缺少什么吗?
- 编辑 -
PDF 是在客户端从 HTML 表单生成的。所以它不是一个简单的表单提交。