Я хочу сделать API REST с Sanic (https://github.com/huge-success/sanic), и я застрял с регулярными выражениями.
У меня есть эта конечная точка: api/foo/<string_with_or_without_slashes>/bar/<string>/baz
MyКод Python:
from sanic import Sanic
from sanic.response import json
app = Sanic()
@app.route('/api/foo/<foo_id:[^/].*?>/baz')
async def test1(request, foo_id):
return json({'test1': foo_id})
@app.route('/api/foo/<foo_id:[^/].*?>/bar/<bar_id>/baz')
async def test2(request, foo_id, bar_id):
return json({'test2': f'{foo_id}:{bar_id}'})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)
Если я сделаю:
$ curl -i http://localhost:8000/api/foo/aa/bar/bb/baz
{"test1":"aa\/bar\/bb"}
Или $ curl -i http://localhost:8000/api/foo/a/a/bar/bb/baz
.
Он всегда называется test1
, когда я хочу позвонить test2
функция.
Вы можете мне помочь? Большое спасибо! :) 1021 *