我已經使用經典RegitrationController(繼承自AbstractController)啟動了一個 Symfony 6 專案,RegistrationFormType并User從以下位置獲得物體:
symfony console make:registration-form
我現在可以通過在我的資料庫中添加新物體的表單來創建用戶。
我還想使用API Plateform創建一個 API 。然后,我對我的User架構添加了一些修改并且 API 正在作業,我也可以通過 API 創建用戶。
我現在想知道如何正確耦合表單/控制器和 API。事實上,為了不使用冗余代碼并使用相同的User模式,我想找到一種我RegistrationFormType使用 API 的方式。另請注意,一方面我有代碼RegitrationController,例如,在將用戶密碼保存到資料庫之前對其進行哈希處理。另一方面,這是通過UserDataPersisterAPI 端實作的。
為了能夠從表單和 API 創建用戶,分解該代碼并構建我的架構的良好做法是什么?(我想保留 SymfonyAbstractController提供的很酷的東西,比如createForm, handleRequest,renderForm等)
我找不到同時使用 Form/Controller 和API Plateform的示例。
將表單/控制器和 API 放在同一個專案中是不是一個壞主意?
uj5u.com熱心網友回復:
在切換到 API 平臺時,您首先必須忘掉從更傳統的應用程式中學到的東西 :)
諸如創建/呈現表單和處理請求之類的事情是可能的,但請記住,您的 API 接受除其他外,application/json而不是application/x-www-form-urlencoded.
這完全取決于您選擇的客戶端代碼。如果您堅持使用不帶 、 或 的更傳統形式React,Angular則Vue您將資料發送進來application/x-www-form-urlencoded,而您的 API 平臺需要一種方法來對其進行非規范化。
有一篇關于該主題的官方文章:https ://api-platform.com/docs/core/form-data/ ,但它有自己的優勢(例如 CSRF 處理)
一種更常見的方法是使用一些現代 JS 框架從頭開始創建一個表單,然后提交物件(以 JSON 格式)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/507525.html
標籤:php api 交响乐 api-platform.com
上一篇:是否可以將CollectionType與LanguageType類一起使用?Symfony
下一篇:帶有令牌的JWT身份驗證無效憑證
