Вы можете использовать any
конвертер с вашим желаемым путем и одновременно работать с media_type в качестве переменной:
api.add_resource(FooAPI, '/<any(a, b, c):model_type>')
api.add_resource(BarAPI, '/<any(x, y, z):model_type>')
Если вы хотите, чтобы они были динамическими:
FooAPIOptions = ['a', 'b', 'c']
api.add_resource(
FooAPI, "/<any({}):model_type>".format(str(FooAPIOptions)[1:-1]))
Простое приложение будет:
from flask import Flask
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
class FooAPI(Resource):
def get(self, model_type=None):
print(model_type) # for example it prints a for "/a" path
return {'hello': 'world'}
FooAPIOptions = ['a', 'b', 'c']
api.add_resource(
FooAPI, "/<any({}):model_type>".format(str(FooAPIOptions)[1:-1]))
if __name__ == '__main__':
app.run(debug=True)