API平台前缀+admin

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

我正在使用当前版本的 Api Platform https://github.com/api-platform/api-platform/releases/tag/v3.0.10 并使用 docker compose 运行它。

我想为整个 API 添加前缀“/api”。

但是一旦我给 api 添加前缀,管理面板中的构建就会出现错误。

我添加了:前缀:'/api'

api_platform:
    resource: .
    type: api_platform
    prefix: '/api'

到我的 config/api_platform.yaml

我还在我的 Caddyfile 中添加了“/api*”

@pwa expression `(
        header({'Accept': '*text/html*'})
        && !path(
           '/api*' ,'/docs*', '/graphql*', '/bundles*', '/contexts*', '/_profiler*', '/_wdt*',
            '*.json*', '*.html', '*.csv', '*.yml', '*.yaml', '*.xml'
        )
    )
    || path('/favicon.ico', '/manifest.json', '/robots.txt', '/_next*', '/sitemap*')`

现在我可以在 https://localhost/api/endpoint 上查询 api,并且可以在 https://localhost/api/docs 上查看文档。

但是当我尝试在 https://localhost/admin 上使用 admin 中的构建时,它会抛出错误。 如果我查看控制台,我会看到:

  • 2 个 xhr 调用 https://localhost/ 导致 404 还有
  • 错误:无法获取 API 文档:状态:404 adminDataProvider.js:27

在此之后出现了更多错误,但我认为它们只是上述结果的结果。

在网络选项卡中还有很多对“https://localhost/__nextjs_original-stack-frame?isServer=false&isEdgeServer=false.....”的 404 调用

有人可以告诉我我错过了什么吗?

提前谢谢您。

编辑: 我猜 pwa 不知道改变的路径。

所以我尝试将 docker-compose.yaml 中的环境变量 NEXT_PUBLIC_ENTRYPOINT 从 http://caddy 设置为 http:caddy/api

pwa:
  build:
    context: ./pwa
    target: prod
  environment:
    NEXT_PUBLIC_ENTRYPOINT: http://caddy/api

但这也不起作用。

好吧,我成功了,但感觉不太好。

我更改了我的 pwa/pages/admin/index.tsx

setDynamicAdmin(<HydraAdmin entrypoint={window.origin + '/api'}></HydraAdmin>);

但我认为必须通过 docker yaml 设置提供更清晰的选项。 所以如果你知道的话请告诉我。

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