如何从微服务1调用我的微服务2。所以我们的结果看起来像这样:
结果:-{“消息”:“ vivek”}-> {“消息”:“ keviv”,“随机”:3.89}
访问微服务1的命令:-
curl http://127.0.0.1:5000/reverse_random/vivek
微服务1
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/reverse_reandom/<string:string>', methods=['GET'])
def reverse(string):
string = string[::-1]
return jsonify({'message': string })
if __name__ == '__main__':
app.run(debug = True)
微服务2
import random
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/', methods=['GET'])
def myRandom():
r1 = random.uniform(0, 10)
return jsonify({'message': r1 })
if __name__ == '__main__':
app.run(debug=True)
最佳答案
在其他端口上运行microservice-2。使用Python标准或来自Microservice-1的第三方库发送请求
根据对微服务1的请求转到微服务2。
以下是仅使用Python3标准库的示例:
m1.py:
from flask import Flask, jsonify
import urllib
import json
app = Flask(__name__)
@app.route('/reverse_random/<string:string>', methods=['GET'])
def reverse(string):
content = urllib.request.urlopen('http://127.0.0.1:5001').read().decode('utf-8')
print('response from m2: ', content)
string = string[::-1]
return jsonify({'message': string, 'random' : json.loads(content)['message']})
if __name__ == '__main__':
app.run(debug = True)
m2.py:
import random
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/', methods=['GET'])
def myRandom():
r1 = random.uniform(0, 10)
return jsonify({'message': r1 })
if __name__ == '__main__':
app.run(debug=True, port=5001) # running m2 on a different port than default 5000
运行m1:
python3 m1.py
在另一个shell中运行m2:
python3 m2.py
发送请求到m1:
curl http://127.0.0.1:5000/reverse_random/vivek
结果是:
{
"message": "keviv",
"random": 4.138115905045612
}
观察m1和m2的日志,以确保已调用m2。
关于python - 如何使用python从microservice-1调用microservice-2?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58365303/