我正在尝试编写一个具有“boat”资源的API,并且我希望使用ID和其他资源构建该URL。
localhost:8080/boat/absk12712480/arrival
我最初有:
app = webapp2.WSGIApplication([
...
('/boat/(.*)/arrival', ArrivalHandler),
...
], debug=True)
但是,这仍然抓住了“/到达”作为身份证的一部分。所以我试过了:
('/boat/(.*?(?=\/)/arrival', ArrivalHandler)
('/boat/(.*?(?=\/arrival)/arrival', ArrivalHandler)
我正在尝试做什么,如果是这样的话?
答案 0 :(得分:1)
在('/boat/(.*)/arrival', ArrivalHandler)
中,正则表达式过于贪婪,与webapp2 URI format不匹配。如果ID总是只是小写的ascii和数字,你可以使用:
('/boat/<:[a-z0-9]+>/arrival', ArrivalHandler)
应该工作,或者
('/boat/<id:[a-z0-9]+>/arrival', ArrivalHandler)
如果你想要一个命名参数。