首页 > 解决方案 > Flask API - 列出所有添加的资源

问题描述

我使用 Flask 创建了一个简单的 API,我的问题是如何让它列出它已分配的所有资源或端点

from flask import Flask, request
from flask_restful import Resource, Api
from sqlalchemy import create_engine
from json import dumps
import os, random

app = Flask(__name__)
api = Api(app)

class cuddle(Resource):
    def get(self):
        file = random.choice(os.listdir("/path/to/dir/of/images"))
        out = "https://example.com/path/" + file
        return out

api.add_resource(cuddle, '/api/cuddle')

if __name__ == '__main__':
        app.run(host="0.0.0.0", port=33, debug=True)

我希望能够去example.com/api/endpoints并让它列出所有可用的端点,例如在片段中cuddle

标签: pythonapiflaskpython-3.6

解决方案


您可以使用 app.url_map.iter_values()

下面是一个例子

@app.route('/')
def hi():
    return 'Hello World!'

@app.route('/hi')
def hi():
    return 'Hi!'


@app.route('/hello')
def hello():
    return 'Hello World!'


def routes():
   routes = []
   for route in app.url_map.iter_rules():
    routes.append('%s' % route)
print(routes)

['/你好', '/']


推荐阅读