ファイルに下記のように果物名が記述されている。
- 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