Podążyłem za dokumentacją online, aby zainstalować GNU health FHIR REST server.Aplikacja Flask + Tornado - jak komunikować się z serwerem (odmowa połączenia)
Udało mi się uruchomić aplikację serwera REST na moim komputerze serwera. According to the documentation następujące punkty końcowe powinny być dostępne od mojego serwera:
List all patients (http://localhost:5000/Patient)
Show info for patient id #1 (http://localhost:5000/Patient/1)
List all patients with ana in name (http://localhost:5000/Patient?name=ana)
# etc ...
Jest to kod Pythona, który jest używany do uruchomienia serwera Tornado:
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop
from tornado.options import define, options
from app import create_app
from config import ProductionConfig
define("port", default=5000, help="Port to listen on", type=int)
#app = create_app(config=ProductionConfig)
app = create_app() #DebugConfig
http_server = HTTPServer(WSGIContainer(app))
http_server.listen(options.port)
IOLoop.instance().start()
użyłem curl
próbować przesłuchać serwer:
curl http://localhost:5000/Patient
curl: (7) Failed to connect to localhost port 5000: Connection refused
Uwaga: Zgaduję (z kodu wklejony powyżej), że serwer Tornado nasłuchuje na porcie 5000. Zmodyfikowałem kod, aby wydrukować wartość `options.port, ale z jakiegoś powodu nie jest on drukowany na konsoli; również nie udało się zarejestrować wartości w pliku (plik nie został zapisany i nie podano komunikatu o błędzie) - więc nie wiem, co się dzieje.
I podwójne sprawdzane lsof
aby zobaczyć, które porty są otwarte:
$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python2 23147 morpheous 4u IPv6 592698 0t0 TCP localhost:51950->localhost:8000 (ESTABLISHED)
Potrzebuję pomocy w nawiązywaniu który jest uruchomiony portu Tornado, więc mogę użyć curl do kwerendy API REST.
Ten kod wygląda poprawnie i działa, jeśli podstawię moją własną funkcję 'create_app'. Problem musi być czymś w modułach 'app' lub' config'. –
@BenDarnell, który port był uruchomioną instancją Tornado? Ponadto, w moim pytaniu, chciałem wiedzieć, jak rozmawiać z serwerem za pomocą 'curl' - jak bym to zrobił? –
Czy wiesz, w jaki sposób mogę zdebugować kod aplikacji tornado (kod podany w pytaniu). Brak możliwości drukowania na konsoli lub rejestrowania zmiennych w pliku utrudnia debugowanie i rozwiązywanie problemu. –