如何在API平台分发2.4.2中访问管理组件?

问题描述 投票:0回答:2

我试图在我的本地机器上设置API平台来探索它。我尝试根据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-started/上寻求帮助,但它描述了在分发中似乎已经完成的步骤

如何启用管理组件或调试出错?

编辑(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)

值得一提的是,尽管http://localhost:8080的API组件有效,但https://localhost:8443的HTTPS变体却没有。 (如果我尝试telnet它连接被拒绝。)

现在事实证明它之前没有注意到JS控制台中有一条消息说连接到https://localhost:8443失败了。 (它说的是关于CORS,但我认为真正的原因是8443只是拒绝连接)。因此,虽然我在http://localhost:81上输入了Admin的HTTP变体,但它尝试通过HTTPS访问API。什么可能是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
varnish varnish-vcl api-platform.com
2个回答
0
投票

你能说vcl的哪个子程序“return(miss)”是什么?


0
投票

我通过克隆当前主服务器获取API平台而不下载tar.tgz发行版本(2.4.2)解决了这个错误

git clone https://github.com/api-platform/api-platform.git
docker-compose build
docker-compose up -d

奇迹般有效 !

© www.soinside.com 2019 - 2024. All rights reserved.