我有一个使用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]";
?>
有人能指出我正确的方向吗?
提前致谢。
迈克尔
答案 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)