首页 > 解决方案 > Laravel REST API 何时为值列表创建单独的控制器?

问题描述

假设我有一个用于注册用户的简单 API。对于每个用户,我都会收集基本信息,例如:姓名、电子邮件、状态、性别、婚姻状况。对于状态、性别和婚姻状况,我有一个预先填充了 id 的数据库表,因此我可以在下拉列表中显示它们并让用户选择每个。

现在,当涉及到用于注册用户的 API 控制器时,我是否应该在单个 JSON 对象中传递值列表?

return response()->json([
    'genderList' => Gender::get('id', 'name'),
    'stateList'  => State::get('id', 'abbr'),
    'maritalList => MaritalStatus::get('id', 'name')
]);

或者我应该为每个返回一个对象的每个单独的控制器和 API 调用?

有没有合适的方法来做到这一点,还是个人喜好?

如果这很重要,我将使用 Vue 作为我的前端。

标签: javascriptlaravelapirestvue.js

解决方案


这确实是个人喜好,因为没有proper way这样做。请记住将传递的网络调用的数量和数据库的命中次数。

就个人而言,我更喜欢使用以下方法输出数组pluck()

return response()->json([
    'genderList' => Gender::pluck('name', 'id'),
    'stateList'  => State::pluck('abbr', 'id'),
    'maritalList => MaritalStatus::pluck('name', 'id')
]);

缓存这些结果也很好,因为它们可能不会经常更改


推荐阅读