Как я могу разместить свой биткойн API на рынке 21 с помощью виртуального IP-адреса?

Я пытаюсь сделать мой простой API Pokemon доступным на чем-то другом, кроме моего локального хоста. API состоит из двух файлов: client.py и server.py. Я выполнил команду 21 market join и получил виртуальный IP. (10.244.121.0).

Я попытался изменить свой скрипт так, чтобы вместо запроса client.py "http://localhost:5000/" он запрос "http://10.244.121.0:5000/", но когда я запускаю client.py, я получаю ошибка при запросе этого URL. Я новичок в Python, поэтому не знаю, что мне нужно сделать, чтобы сделать этот API доступным для всех, кто запрашивает его по адресу 10.244.121.0.

клиент.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()

сервер.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


person Mike    schedule 24.07.2016    source источник


Ответы (1)


Вместо прямого вызова python client.py теперь я могу использовать 21 buy http://10.244.121.0:5000/name?id=1 для удаленного вызова моего API.

person Mike    schedule 24.07.2016