HTTP応答コード/エラーチェック以外のPythonとNDBを使用してGoogle App Engine APIを使用しています。私は、自分のエンティティの1つのポスト関数に(ユーザーが必要なフィールドを空白にしないようにするために)406エラー(json要求のみ受け付ける)と400エラーを処理するコードを入れましたが、今はコードが壊れているようです。HTTP 406レスポンスコードチェックでGoogle App Engine/Python APIが破損しています
curl --data-urlencode "name=clean" -H "Accept: application/json" http://localhost:15080/task
私は(すべての場合の問題は、エラーチェックコードである知っている:
class Task_action(webapp2.RequestHandler):
def post(self):
#Only allows a JSON, if not, then error
if 'application/json' not in self.request.accept:
self.response.status = 406
self.response.status_message = "Not Acceptable, API only supports application/json MIME type"
return
new_task = Task(parent=PARENT_KEY,
name = self.request.get("task_name"),
hours = int(self.request.get("task_hours")),
id = self.request.get("task_name"))
#has error code, since name and hours is required
if name:
new_task.name = name
else:
self.response.status = 400
self.response.status_message = "Invalid request, task name is Required."
if hours:
new_task.hours = hours
else:
self.response.status = 400
self.response.status_message = "Invalid request, task hours is Required."
key = new_task.put()
out = new_task.to_dict()
self.response.write(json.dumps(out))
が、私はそれをテストするためにカール使用しています:これはエラーとコードが含まチェックしています私はそれを取るとき、カールテストがうまく動作し、オブジェクトがndbデータベースに正しく追加されているからです。しかし、エラーチェックコードが含まれているので、私のカールテストはオブジェクトを必要に応じて追加しません。エラーチェックコードが投稿文を壊している理由は誰にも分かりますか? HTTPエラー応答コードを返す良い方法はありますか?
コードの書式設定を修正しようとしましたが、実際のコード、特にインデントが反映されているかどうかを確認してください。 –
フォーマットを修正していただきありがとうございます。 – ChristinaLindsay