【发布时间】:2011-08-15 22:18:45
【问题描述】:
我希望 API 支持:
GET /api/spam/{id}
POST /api/spam
body: {'name': 'green spam'}
我通常会通过以下方式路由到处理程序:
webapp.WSGIApplication([r'/api/spam/(.*)', APISpam])
class APISpam(RequestHandler):
def get(self, id):
# do stuff
def post(self):
# do stuff
但是帖子失败了,因为它需要第二个参数。将 RESTful url 模式适应每种资源类型的处理程序的最佳设计模式是什么?
更新:
需要指出的是,上面的 uri 示例表示一个集合 (/spam) 和一个元素 (/spam/{id})。那不是我的意图。两个 uri 示例都是针对元素 spam 的,一个是 GET 特定的垃圾邮件,另一个是 POST 新的垃圾邮件。我不使用 /spam/{id} 作为 POST 的原因是因为我正在创建一个新的垃圾邮件,因此没有 id。
【问题讨论】:
-
/api/spam和/api/spam/{id}url 引用不同的资源:一个集合和集合中的一些项目;为什么他们应该使用相同的处理程序?
标签: python google-app-engine rest requesthandler