我有一个
REST API
网址看起来像这样:
class RRervice(pyrestful.rest.RestHandler):
@get('/Indicator/{rparms}')
def RR(self, rparms):
print(rparms)
...
所以当这段代码在这个 URL 上执行时:
http://ip:3000/Indicator/thresh=.8&symbol=AAPL
print
我得到了我应该得到的:
thresh=.8&symbol=AAPL
我的问题是,是否有一个 API 可以确保某些参数必须存在,如果有,解析它们的最佳方式是什么?我看过
urllib
,甚至argparse
。我想我正在寻找正确的方法来做到这一点。我知道我可以通过 split
破解它,但这只是解决获取 URL 中键入的内容,而不是 URL 参数的正确性。
由于您已经收到与不带问号的查询字符串相对应的 URL 的确切部分,如果您想本地解析它(即不使用您正在使用的框架),您可以使用
parse_qs
来自urllib.parse:
from urllib.parse import parse_qs
...
class RRervice(pyrestful.rest.RestHandler):
@get('/Indicator/{rparms}')
def RR(self, rparms):
pparams = parse_qs(rparms)
print(pparams.get("thresh"))
print(pparams.get("symbol"))
...
为了强制执行它,您可以检查
pparams.get(param_name)
是否为None,像这样:
if(pparams.get("thresh") is None):
"Return your error to the client somehow"