google app engineで任意のhttp statusコードを返す

google app engineで任意のhttp status コードを返すときには、
set_status()を使うらしい。

以下、サンプルコード
# -*- coding: utf-8 -*-
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class Page(webapp.RequestHandler):
  def get(self):
    # http status code(200 ok, 400 bad requestなど)を設定
    self.response.set_status(400)

    # http response headerを設定
    self.response.headers["Content-type"] = 'application/json';

    # http response bodyを設定
    self.response.out.write("""                                                                                                                             
{"status":"ng", "message":"request params is invalid"}""")

application = webapp.WSGIApplication([('/', Page)], debug=True)

def main():
  run_wsgi_app(application)

if __name__ == "__main__":
  main()
これで、400 bad requestと任意のhttp response bodyを返すことが出来る。


ドキュメントはこちら