如何从微服务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/

10-12 23:24