我是 Sylius 的初學者,我正在嘗試使用 API,但它不起作用。每個結果都是“404 Page not found”。
腳步 :
- 創建一個 apache2 虛擬主機(主機名:myproject.local
- 用官方檔案安裝Sylius(1.10)(專案 資料庫 前端編譯)
- 使用管理面板添加一些內容
- 從前臺創建新客戶
一切正常,但是當我嘗試使用 API 創建用戶時,回應是“找不到路由(404 未找到)”HTML 頁面。(這是官方檔案中的第一個 API 呼叫:Sylius API doc)
那是我的作業系統詳細資訊:
Distributor ID: Ubuntu
Description: Ubuntu 21.04
Release: 21.04
Codename: hirsute
我正在使用 Apache2 和 MySQL:
Server version: Apache/2.4.46 (Ubuntu)
Server built: 2021-09-28T10:57:42
mysql Ver 8.0.27-0ubuntu0.21.04.1 for Linux on x86_64 ((Ubuntu))
當我使用命令時:
php bin/console debug:router api
我可以看到 189 個結果,我嘗試了一些,例如:
-------------- ---------------------------------------------------------
| Property | Value |
-------------- ---------------------------------------------------------
| Route Name | api_doc |
| Path | /api/v2/docs.{_format} |
| Path Regex | {^/api/v2/docs(?:\.(?P<_format>[^/] ))?$}sD |
| Host | ANY |
| Host Regex | |
| Scheme | ANY |
| Method | ANY |
| Requirements | NO CUSTOM |
| Class | Symfony\Component\Routing\Route |
| Defaults | _api_respond: true |
| | _controller: api_platform.action.documentation() |
| | _format: |
| Options | compiler_class: Symfony\Component\Routing\RouteCompiler |
-------------- ---------------------------------------------------------
URL : http://myproject.local/api/v2/docs,但結果是一樣的
我錯過了什么 ?
uj5u.com熱心網友回復:
好吧,我忘記激活 API 了:
正如檔案所說,“新的統一 Sylius API 仍在開發中”,因此需要啟用此功能。
編輯config/packages/_sylius.yaml以添加:
sylius_api:
enabled: true
現在 API 被激活,路由不再回應 404。
最后一件事,在您實際使用 API 之前,您需要生成一個 JWT 密鑰對,否則 API 呼叫將回傳“無法從給定配置創建簽名 JWT ”。
為此,請使用 JWT 包 ( Lexik Repository ):
php bin/console lexik:jwt:generate-keypair
現在一切都很好,您可以使用 API,享受 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/371978.html
