2017-10-30 7 views
0

私は以下のコードを使用して文字列のリストを返すフラスコを使用したシンプルなAPI、持っている:フラスコAPIでアクセス2番目のリソース

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]"; 
?> 

私が抱えている問題は、「会計」と呼ばれる第2のリソースにアクセスすることです。 PHPを使って次のコードを使用しているときや、Webページの自宅の住所に行くときにも、私はリソースを見たり、アクセスしたりすることができません。

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

誰でも正しい方向に向けることができますか?

ありがとうございます。

あなたは1つのルートの下に2つのAPIをマウントしているマイケル・

答えて

0

:ルートルート「/」、私は製品と別々の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) 
+0

ねえ、それは動作します!上記のあなたの提案を使用し、このコードを '$ json = file_get_contents( 'http:// product-service/accounting');'ありがとうございました。 –

関連する問題