Как вызвать микросервис-2 из микросервиса-1, используя python? - PullRequest
1 голос
/ 13 октября 2019

Как позвонить в мой микросервис-2 из микросервиса-1. Таким образом, наш результат выглядит следующим образом: -

Результат: - {«message»: «vivek»} -> {«message»: «keviv», «random»: 3.89}

команда для доступа к microservice-1: -

curl http://127.0.0.1:5000/reverse_random/vivek

microservice-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)

microservice-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)

Ответы [ 2 ]

3 голосов
/ 13 октября 2019

вам нужно будет отправить GET запрос на service 2, чтобы получить случайное число, для этого я предлагаю использовать запросов , например

r = requests.get('url-for-service-2:port/')
data = r.json()
random_num = data['message']

Имейте в виду, чтобы проверить data объект для ключа message, или использовать .get() или эквивалентный

1 голос
/ 13 октября 2019

Запустите микросервис-2 на другом порту. Отправьте запрос, используя стандарт Python или стороннюю библиотеку, из microservice-1 в microservice-2 по запросу microservice-1.

Ниже приведен пример использования только стандартной библиотеки 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

Запуститем2 в другой оболочке: python3 m2.py

Отправить запрос на m1: curl http://127.0.0.1:5000/reverse_random/vivek

Результат:

{ 
  "message": "keviv",  
  "random": 4.138115905045612 
} 

Соблюдать журнал m1 и m2чтобы убедиться, что m2 был вызван.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...