同じサーバーに配置された REST API に基づく Web アプリケーションがあります。アクセス可能なTask
リソースと、基本的にタスクを作成するための単なるフォームで/api/task/<task_id>
ある Web ページがあるとします。/create-task
それにはいくつかの方法があります。
a) Javascript を使用して REST API と通信する (そうしたくない)
b) データベースにオブジェクトを直接作成する
@app.route('/create-task', methods=['POST'])
def create_task(self):
# create an object
try:
task = Task(request.form)
except:
# handle errors and put them to form
pass
# save it into db
task.save()
c)requests
ライブラリを使用して REST API を呼び出す
@app.route('/create-task', methods=['POST'])
def create_task(self):
# send request to REST API
r = requests.post(url_for('api.task', _external=True), json=request.form.data)
if r.status_code != 200:
# handle errors and put them to form
pass
どのオプションがベスト プラクティスであると考えられますか? エラー処理とフォームに関連する問題を考えてみてください。
おまけ質問についてflask-restful
。フラスコレストフルで構築された動作中の API が既にあり、オプション b) を使用したいとしましょう。どういうわけかTaskResource.post
それを行うために使用できますか?