CakePHP 4-自定义请求和响应格式
对于一个新项目,我希望使用CakePHP 4作为REST后端,并使用Vue.js前端。CakePHP 4-自定义请求和响应格式,cakephp,cakephp-4.x,Cakephp,Cakephp 4.x,对于一个新项目,我希望使用CakePHP 4作为REST后端,并使用Vue.js前端。 现在,Cake使用嵌套数据结构,而vue.js使用平面数据结构。 我现在的计划是在后端转换数据 示例格式: CakePHP { "user": { "id": 1, "name": "Peter Maus" "articles
现在,Cake使用嵌套数据结构,而vue.js使用平面数据结构。
我现在的计划是在后端转换数据 示例格式:
CakePHP
{
"user": {
"id": 1,
"name": "Peter Maus"
"articles" : [
{
"id": 15,
"title": "First Post",
}
]
},
}
Vue.js
{
"user": {
"id": 1,
"name": "Peter Maus"
"articles" : [ 15 ]
},
"articles": [
{
"id": 15,
"title": "First Post",
}
]
}
所以基本上不只是发送json
$this->viewBuilder()->setOption('serialize', ['user']);
我想先“转换数据结构”,然后作为json发送
我现在根据文件发现了以下转换可能性:
请求-从vue转换为cake我已经看到您可以使用自己的解析器。 但是我仍然使用json作为响应格式,我不想覆盖标准json格式化程序 响应-从蛋糕转换为vue
想法:
- 我看过“”,但我不确定它是否适合此用途
- 扩展ViewBuilder并编写我自己的serialize()函数。
我该如何包含我自己的ViewBuilder,这可能吗 - 在父实体中编写解析器函数,我的所有实体都从该父实体继承。并在序列化数据之前调用该解析函数
什么是合理的方法?我对Vue.js不太熟悉,所以我不得不问这个问题。Vue.js是否确实需要这种格式才能工作,或者这是您的应用程序特有的格式?使用平面数据结构是最好的做法。至少如果你使用vuex。您可以将其想象为前端数据存储。如果您有重复的对象,您将遇到麻烦。如果两个父对象具有相同的子对象,则嵌套数据可能会发生这种情况。