我希望 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。