Я попытался настроить API Platform на своем локальном компьютере, чтобы изучить его.
Я попытался выполнить все операции в соответствии со страницей «Начало работы» платформы API. Поэтому я скачал последний официальный дистрибутив v2.4.2 (https://github.com/api-platform/api-platform/releases/tag/v2.4.2)) и запустил его с помощью Docker.
Однако я не могу получить доступ к административному серверу на http://localhost:81
, получающем «Невозможно получить документацию API».
Я искал справку по https://api -platform.com / docs / admin / Getting-Start / , но он описывает шаги, которые, похоже, уже были выполнены в дистрибутиве
Как включить компонент администратора или отладить то, что пошло не так?
Редактировать (2019-04-14)
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
40a5d5213cfe quay.io/api-platform/nginx "nginx -g 'daemon of…" 45 hours ago Up 6 minutes 0.0.0.0:8080->80/tcp apiplatformdemo_api_1
d53711c0ba0c quay.io/api-platform/php "docker-entrypoint p…" 45 hours ago Up 6 minutes 9000/tcp apiplatformdemo_php_1
2d4eb8d09e3e quay.io/api-platform/client "/bin/sh -c 'yarn st…" 45 hours ago Up 6 minutes 0.0.0.0:80->3000/tcp apiplatformdemo_client_1
abe3e3b41810 quay.io/api-platform/admin "/bin/sh -c 'yarn st…" 45 hours ago Up 6 minutes 0.0.0.0:81->3000/tcp apiplatformdemo_admin_1
4596a7f81cd8 postgres:10-alpine "docker-entrypoint.s…" 45 hours ago Up 6 minutes 0.0.0.0:5432->5432/tcp apiplatformdemo_db_1
c805fc2f11c9 dunglas/mercure "./mercure" 45 hours ago Up 6 minutes 443/tcp, 0.0.0.0:1337->80/tcp apiplatformdemo_mercure_1
Редактировать 2 (2019-04-14)
Стоит отметить, что хотя компонент API на http://localhost:8080
работает, вариант HTTPS на https://localhost:8443
- нет. (Соединение будет отклонено, если я попытаюсь telnet
.)
Теперь выяснилось, что раньше я не замечал, что в консоли JS есть сообщение о сбое соединения с https://localhost:8443
. (Это говорит о CORS, но я думаю, что настоящая причина в том, что 8443 просто отказывается от соединения). Поэтому, хотя я ввел HTTP-вариант Admin в http://localhost:81
, он пытался получить доступ к API через HTTPS. В чем может быть причина того, что HTTPS не работает?
Редактировать 3 (2019-04-15)
После просмотра логов docker compose, я вижу, что уместен сбой контейнера Varnish. h2-proxy
зависит от него, и h2-proxy
управляет портом 8443
.
cache-proxy_1 | Error:
cache-proxy_1 | Message from VCC-compiler:
cache-proxy_1 | Expected return action name.
cache-proxy_1 | ('/usr/local/etc/varnish/default.vcl' Line 67 Pos 13)
cache-proxy_1 | return (miss);
cache-proxy_1 | ------------####--
cache-proxy_1 |
cache-proxy_1 | Running VCC-compiler failed, exited with 2
cache-proxy_1 | VCL compilation failed
apiplatform242_cache-proxy_1 exited with code 2
h2-proxy_1 | 2019/04/15 08:09:17 [emerg] 1#1: host not found in upstream "cache-proxy" in /etc/nginx/conf.d/default.conf:58
h2-proxy_1 | nginx: [emerg] host not found in upstream "cache-proxy" in /etc/nginx/conf.d/default.conf:58
apiplatform242_h2-proxy_1 exited with code 1