---
# System prepended metadata

title: Tendoc OCR用サーバーとの通信フォーマット

---

# Tendoc OCR用サーバーとの通信フォーマット

## つくるもの
 - 画像のあるパスを渡すと、その画像をJSON形式にまとめて返すメソッド(形式は以下参照)
 - JSONを受け取ってHTTP REQUESTして返答を受け取り、返すメソッド

## Request
 - POSTで行うものとする
 - JSONで送信する
 - 送るJSON形式は以下のようなものとする
```
{
    "data":{
        "type":"Image",
        "body":[BASE64形式の画像]
    }
}
```
 - データの中に`type`というKeyを持ったデータと`body`というKeyを持ったデータがある。
 - こちらから送るのは画像のみなので、`type`は`Image`で固定。
 - 上の例の通り、画像はBASE64形式に変換してJSONに格納する。
 - 参考 : https://qiita.com/myzktkyk/items/fac0ab281270d826e9cc
 - 画像ファイルはいずれスキャナ部分とマージした際に読み込めるようにする。
 - OCRのサーバーもいずれインターネット上に立てるが、そのアドレスは、仮に`192.168.1.1:8000`であるとする。

## Response
 - JSON形式で送られてくる。
 - 認識したものが画像(表など)かテキストかによって、OCRしたテキストあるいは画像が格納されて返ってくる。
 - 形式は以下のようなものとする
```
{
    "data":
    [
        {
            "type":"Text",
            "body":"文字列hogehoge"
        },
        {
            "type":"Title",
            "body":"見出し部分の文字列fugafuga"
        },
        .
        .
        .
        {
            "type":"Text",
            "body":"文字列mokemoke"
        }
    ]
}
```
 - データの中に`type`というKeyを持ったデータと`body`というKeyを持ったデータがある。(REQUEST側と同じ)
 - このtypeはこのデータがテキストか画像かを判別する。
 - Imageだった場合画像が、Textだった場合OCRした文字列が入っている。
 - 現段階の仕様では、***文字列が入っていた場合のみ文字列を返し、画像が入っていた場合何も返さなくて良い*** 仕様として実装する。(なのでstring型のメソッドになるはずです)