Не удается подключиться к Eve REST API

Я использую Eve для создания REST API для MongoDB. Все работает нормально, за исключением того факта, что я не могу получить доступ к API с любого другого компьютера (в той же сети) или даже с другого URL-адреса (например: если я установил SERVER_NAME = 'localhost: 29000', я не буду иметь возможность подключиться к API с 127.0.0.1 и наоборот).

Я искал вокруг много часов и не могу найти ответа. Я также пробовал другие API REST для MongoDB, такие как Kule, и они, кажется, работают нормально, но не работают. У меня столько же вариантов, сколько у Евы.


person Timon    schedule 09.01.2014    source источник
comment
Попробуйте привязать сокет к 0.0.0.0 вместо 127.0.0.1 - первый означает все интерфейсы, второй привяжет его только к localhost.   -  person Lukas Graf    schedule 10.01.2014
comment
К сожалению, это не сработало. Однако странно то, что он всегда говорит: работает на 127.0.0.1:29000, независимо от того, какой IP-адрес Заливаю (порт действительно меняется).   -  person Timon    schedule 10.01.2014
comment
SERVER_NAME Евы, похоже, основан на одноименной переменной конфигурации из Flask: Подробнее об имени сервера под таблицей в Документы по настройке Flask. Так что это действительно только для имени (обработка имени хоста / поддомена) - фактические сетевые интерфейсы, к которым он привязывается, вероятно, определяются сервером, на котором запускается приложение WSGI. Как вы обслуживаете свое приложение?   -  person Lukas Graf    schedule 10.01.2014
comment
Если вы просто выполняете app = Eve(); app.run() из примера быстрого запуска, попробуйте app.run(host='0.0.0.0') и оставьте имя сервера пустым (SERVER_NAME = '') - я никогда не использовал Eve, но из того, что я понимаю о том, как он построен, это должно работать.   -  person Lukas Graf    schedule 10.01.2014
comment
Вау, это сработало! Я действительно не знаю, как тебя благодарить.   -  person Timon    schedule 10.01.2014


Ответы (1)


SERVER_NAME Евы, похоже, основан на одноименной переменной конфигурации из Flask: см. «Подробнее об имени сервера» под таблицей в Документы по конфигурации Flask. Так что это действительно только для имени (обработка имени хоста / поддомена) - фактические сетевые интерфейсы, к которым он привязывается, вероятно, определяются сервером, на котором запускается приложение WSGI.

Если вы просто делаете

app = Eve()
app.run()

из примера быстрого запуска попробуйте

app.run(host='0.0.0.0')

вместо этого и оставьте имя сервера пустым (SERVER_NAME = '').

Я никогда не использовал Еву, но, насколько я понимаю, она должна работать.

person Lukas Graf    schedule 09.01.2014
comment
+1 за напоминание добавить host=0.0.0.0 примечание к примеру быстрого запуска. Если бы другие люди раньше сталкивались с подобной проблемой. - person Nicola Iarocci; 10.01.2014
comment
Помимо этого, документы отличные из того, чем я был. Однозначно запомню Еву на будущее :) - person Lukas Graf; 10.01.2014
comment
Я копался в сети несколько часов в поисках проблем, связанных с фляжкой. Я не ожидал, что у меня возникнет проблема накануне фляжки. Вы спасли меня - person vladblindu; 22.08.2016