1

web.pyを使用してRESTfulAPIのURLの末尾にある。{Type}に基づいて応答タイプを設定しようとしています。

.JSON、.XML、.HTML、。(何でも)をクラス「Assignments」に渡すか、ServerResponseがそれを受信して​​適切な形式で応答できるように、どこかに値として設定するにはどうすればよいですか?

私は試した:

'/assignments(\.[:upper:]+)', 'Assignments'

URLに次のコードを使用しています。

urls = (
    '/(.*)/', 'redirect',
    '/', 'Homepage',
    '/assignments', 'Assignments'
)

私はクラス「割り当て」を持っています:

class Assignments:
    def GET(self,responseType):
        sentData = web.data()
        query = JSON.decode(sentData,'unicode')
        # \/ Replace With Code \/
        data = query 
        # /\ Replace with Code /\
        return ServerResponse.Send(data,responseType)

    def POST(self,responseType):
        sentData = web.data()
        query = JSON.decode(sentData,'unicode')
        # \/ Replace With Code \/
        data = query 
        # /\ Replace with Code /\
        return ServerResponse.Send(data,responseType)

そして私のServerResponseクラス:

class ServerResponse:
    @staticmethod
    def Send(data, method):
        return getattr(ServerResponse, method)(data)

    @staticmethod
    def JSON(data):
        web.header('Content-Type', 'application/json')
        response = JSON.encode(data)
        return response

    @staticmethod
    def XML(data):
        pass

    @staticmethod
    def HTML(data):
        web.header('Content-Type', 'text/html')
        response  = "<html>"
        response += "<head></head>"
        response += "<body>"
        response += "{"
        for key in data:
            response += "%s:%s,\n" % (str(key), str(data[key]))
        response += "}"
        response += "</body>"
        response += "</html>"
        return response
4

1 に答える 1

2

web.pyにシンプルなRESTfulコントローラーを実装しようとしましたが、現在1つのプロジェクトでその派生物を使用してbackbone.jsと通信しています。ここで確認できます:https ://gist.github.com/3907294

また、https://github.com/martinblech/mimerenderが役立つ場合がありますが、httpacceptヘッダーをチェックしてレンダリング形式を決定します。

于 2013-01-25T10:03:23.580 に答える