ファイルに下記のように果物名が記述されている。
- fruit.txt
バナナ アップル オレンジ バナナ アップル バナナ
果物名をそれぞれカウントして、出現回数の多い順にファイルに出力してください。
- 出力フォーマット
- 1行目はヘッダ行。
果物名,数
固定。 - 2行目以降は、果物名,数をプリントし、
fruit-count.txt
というファイル名で保存する - 例)
果物名,数 バナナ,3 アップル,2 オレンジ,1
- 1行目はヘッダ行。
-
課題1で出力した
fruit-count.txt
を読み込む。 -
fruit-count.txt
果物名,数 バナナ,3 アップル,2 オレンジ,1
-
標準入力を受け取り、果物名を入力されたら、その果物の数を返す。
-
例えば、標準入力から
バナナ
と入力されたら3
を返す。 -
該当しない果物名が入力されたら
0
をかえす -
exit
と入力されたらプログラムを終了する
fruit-count.txt
を読み込む- localhost:8080で動くWebServerを起動する
- API仕様
- GET /fruit
fruit-count.txt
の内容をJSON形式でレスポンス出力する- HTTP STATUS 200とする
- 応答例
{ "items": [ { "バナナ":3 }, { "アップル":2 }, { "オレンジ":1 } ] }
- POST /fruit
- BodyデータをJSON形式で受け取る
- 単一のオブジェクトでKeyが果物名、Valueに数が入る
- 入力例
{ "キウイ":4 }
- 成功の場合は、レスポンスでHTTP STATUS 201をかえす。
- Bodyデータは空とする。
fruit-count.txt
から読み込まれたデータにデータを挿入する。つまり、次に GET /fruitが呼ばれたときは、キウイ:4
が挿入されている。
{ "items": [ { "キウイ":4 }, { "バナナ":3 }, { "アップル":2 }, { "オレンジ":1 } ] }
- 下記のパターンではHTTP STATUS 400を返す。データの挿入は行われない。
- JSON形式ではないBodyデータを受け取った
- すでに存在している果物を指定された
- GET /fruit