私は REST API の設計に不慣れで、作成しようとしている API について 2 つの質問があります。
PDF ファイルのエンコーディングを指定して、データベースにオブジェクトを作成するサービスを作成したいと考えています。
私の現在のサービスは次のようになります。
@RequestMapping(value = "/create", method = RequestMethod.POST,
produces = MediaType.APPLICATION_JSON_VALUE,
consumes = MediaType.APPLICATION_OCTET_STREAM_VALUE)
public String create(@RequestBody byte[] pdf)
私の質問は次のとおりです。
- REST API で byte[] を使用することは「推奨」されますか? 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 フォームから生成されます。したがって、単純なフォーム送信ではありません。