Complete worked example
python
from flask import Flask, request
app = Flask(__name__)
app.config['TESTING'] = True
@app.get('/roles')
def listing():
raw = request.args.get('limit', '10')
if not raw.isascii() or not raw.isdecimal():
return {'error': 'limit invalid'}, 400
limit = int(raw)
if not 1 <= limit <= 50:
return {'error': 'limit invalid'}, 400
return {'ids': list(range(1, 6))[:limit], 'limit': limit}
def page(query):
response = app.test_client().get('/roles', query_string=query)
return {'status': response.status_code, 'body': response.json}- Reasoning
- The worked route accepts an ASCII decimal limit between one and fifty, defaults to ten and slices an already small owned list.