Google App Engineでランダム文字列生成APIつくった

こんにちは。Aliceです。
昨日からGoogle App Engineの勉強をしはじめ、最初に簡単なAPIでもつくってみようとおもいまして、作ってみました。
こちらです!


http://makerandomcode.appspot.com/


使い方 *2011/01/31追記あり

http://makerandomcode.appspot.com/getへGETパラメータを投げてください。
パラメータは、
  • 01 : index -- 数値、ランダムな文字列の文字数になります
  • 02 : callback -- コールバック関数、javascriptで動かすときに指定してください。なくてもOKです
  • 03 : fotmat -- XMLオンリーですが使用できます。
  • 04 : string -- どのような文字列で生成するかを指定することができます。同時に、モード機能も備えています。
    • no-numbers -- 数字なし
    • no-rome -- ローマ字なし
    • no-bigs -- 大文字なし
    • no-small -- 小文字なし
    • 他 -- どのような文字列でも可能です。"qwertyuio"のような特定の文字で生成したい場合は直接文字列を指定してください。


この四つです。


コード

class JsonCover(webapp.RequestHandler):
  def get(self):
    self.response.headers['Content-Type'] = 'application/json'
    default = self.request.get("index")
    callback = self.request.get("callback")
    result = self.choice(int(default))
    
    if callback == "": 
        content = simplejson.dumps({"result":result})
    else: content = '%s({"result":"%s"})'%(callback,result)
    self.response.out.write(content)

全部書くのは長くなるので、パラメータを受け取ってjsonで返すところだけのコードです。
スーパーpre記法つかってみました。



手法

さて、APIの説明だけでは面白く無いので、どういう風に書いたかを説明してみようと思います。
まず、

default = self.request.get("index")

このコードで、indexという要素のGETパラメータを取得します。次のコードも、callbackという要素のパラメータを取得しています。
次の、

result = self.choice(int(default))

これでランダムな文字列を生成しています。

if callback == "": 
    content = simplejson.dumps({"result":result})
else: content = '%s({"result":"%s"})'%(callback,result)

この文では、コールバックパラメータがあるかどうかを検証して、
返すjsonデータを設定しています。
その後、次のコードで、画面出力をしています。
コードの中身はこんなかんじです。



これから

これから、GAE中心に開発を進めていこうかとおもいます。
基本方針はAPIの作成かな。
以上、Aliceでした。