访问Flask Api中的第二个资源

时间:2017-10-30 01:05:44

标签: python flask flask-restful

我有一个使用Flask的简单Api,它使用以下代码返回字符串列表:

from flask import Flask, request
from flask_restful import Resource, Api
from json import dumps

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

class Product(Resource):
    def get(self):
        return {'products':['A','B','C','D','E','F','G','H','I','J','K']}

class Accounting(Resource):
    def get(self):
        return {'accounting':['1','2','3','4','5','6','7','8','9']}

api.add_resource(Product, '/')
api.add_resource(Accounting, '/')

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

当我使用以下代码时,我可以访问Flask api中定义的列表。这列出了“产品”资源的内容

<?php
        $json = file_get_contents('http://product-service/');
        $obj = json_decode($json);
        $products = $obj->products;
        echo "$products[0]";
?>

我遇到的问题是访问名为“accounting”的第二个资源。使用以下代码(使用PHP)或甚至只是访问网页的家庭地址时,我看不到资源或访问它们。

<?php
        $json = file_get_contents('http://product-service/');
        $obj = json_decode($json);
        $accounts = $obj->accounting;
        echo "$accounts[0]";
?>

有人能指出我正确的方向吗?

提前致谢。

迈克尔

1 个答案:

答案 0 :(得分:0)

您正在一条路线下安装两个API:根路径“/”,我建议将产品和会计分开到单独的API点:

from flask import Flask, request
from flask_restful import Resource, Api
from json import dumps

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

class Product(Resource):
    def get(self):
        return {'products':['A','B','C','D','E','F','G','H','I','J','K']}

class Accounting(Resource):
    def get(self):
        return {'accounting':['1','2','3','4','5','6','7','8','9']}

api.add_resource(Product, '/products')
api.add_resource(Accounting, '/accounting')

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