Я пытаюсь сделать мой простой API Pokemon доступным для чего-то другого, кроме моего localhost. API имеет два файла: client.py и server.py. Я запустил команду 21 market join
и получил виртуальный IP-адрес. (10.244.121.0).Как я могу разместить свой Bitcoin API на рынке 21 с помощью Virtual IP?
Я пробовал изменить свой сценарий так, чтобы вместо client.py с запросом «http://localhost:5000/» он запрашивал «http://10.244.121.0:5000/», но когда я запускаю client.py, я получаю сообщение об ошибке при запросе этого URL-адреса. Я довольно новичок в Python, поэтому не знаю, что мне нужно сделать, чтобы сделать этот API доступным для всех, кто его запрашивает по адресу 10.244.121.0
.
client.py:
...
# server address
server_url = 'http://10.244.121.0/'
def name():
id = input("Please enter a Pokemon ID: ")
sel_url = server_url + 'name?id={0}'
answer = requests.get(url=sel_url.format(id))
print(answer.text)
if __name__ == '__main__':
name()
server.py:
...
@app.route('/name')
@payment.required(1)
def answer_question():
# extract answer from client request
id = request.args.get('id')
url = 'http://pokeapi.co/api/v2/pokemon/' + id
response = requests.get(url)
pokemonData = json.loads(response.text)
pokemonName = pokemonData['name']
print(pokemonName)
return pokemonName
if __name__ == '__main__':
app.run(host='0.0.0.0')
Здесь ошибка я получаю при замене узла в функции app.run
от 0.0.0.0
к виртуальному IP:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='10.244.121.0', port=80): Max retries exceeded with url: /name?id=1
(Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7f98d6b6e470>:
Failed to establish a new connection: [Errno 111] Connection refused',))
Любая помощь будет оценена!
Github репо: https://github.com/LAMike310/pokedex