補講02-1 平方根 REST API#
パスパラメータで数値を受け取り、その平方根を返す REST API を作成してください。
/sqrt/<num> で num の平方根(math.sqrtで求められます)を返します。
num は float 型で受け取ってください。
もし、numが負の数の場合は、400 のステータスコードを返してください。
sqrt_rest.py というファイル名で保存してください。
from flask import Flask
import math
app = Flask(__name__)
# ここに REST API を作成する。
app.run(port = 5001, debug = True, host = "0.0.0.0")このスクリプトを実行したあと、ブラウザで http://localhost:5001/sqrt/2 にアクセスすると、1.41421356... というメッセージが表示されることを確認してください。
発展課題(任意) 立方根
この課題は任意です。提出は必須ではなく、取り組まなくても不利にはなりません。余裕があれば挑戦してください。
先ほどの sqrt_rest.py に /cbrt/<num> で num の立方根を返す REST API を追記してください。
立方根は math.cbrt で求められます。
立方根の場合は、負数でも問題ありません。
なお、math.cbrt は Python 3.11 で追加された関数です。
それ以前のバージョンの Python を利用している場合は、num ** (1/3) で立方根を計算してください。
補講02-2 四則演算 REST API#
以下の特徴を持つ四則演算 REST API を作成してください。
クエリパラメータで、v1、v2、op を受け取り、v1 と v2 の四則演算結果を返します。
v1、v2 は int 型で受け取り、op は add(足し算)、sub(引き算)、mul(掛け算)、div(割り算) のいずれかです。
op が上記以外の場合は、404 のステータスコードを返してください。
v1、v2 が int でない場合(not v1.isdigit() で調べられます)は、
400 のステータスコードを返してください。
calc_rest.py というファイル名で保存してください。
from flask import Flask, request
app = Flask(__name__)
@app.route("/calc", methods = ["GET"])
def calc():
v1 = # クエリパラメータから v1 を取得する。
v2 = # クエリパラメータから v2 を取得する。
op = # クエリパラメータから op を取得する。
if # v1, v2, op のどれかが与えられなかった場合
return "Error: Invalid parameters", 400
i1 = int(v1)
i2 = int(v2)
if op == "add":
result = i1 + i2
elif op == "sub":
result = i1 - i2
elif op == "mul":
result = i1 * i2
elif op == "div":
if i2 == 0:
return "Error: Division by zero", 400
result = i1 / i2
else:
return "Error: Invalid operator", 400
return f'{{"operation":"{i1} {op} {i2}","result":{result}}}', 200
app.run(port = 5001, debug = True, host = "0.0.0.0")このスクリプトを実行したあと、ブラウザで http://localhost:5001/calc?v1=1&v2=2&op=add にアクセスすると、{"operation":"1 add 2","result":3} というメッセージが表示されることを確認してください。
