我有一个由位于同一服务器上的 REST API 支持的 Web 应用程序。假设我有一个Task
可访问的资源/api/task/<task_id>
和一个网页/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
. 假设我已经有一个使用 flask-restful 构建的有效 API,并且想要使用选项 b)。我可以以某种方式使用TaskResource.post
它吗?