对于 API 资源使用的几个疑问?需要大家来帮助解惑
1:我可以直接在控制器中拼接一个数组返回,这样灵活性更大,为甚要使用api资源
2:接口1需要返回user模型的id,nickname字段,接口2需要返回user模型的phone字段,接口3需要返回id,points字段,那么我需要建立3个user模型的资源类吗?这样不是很麻烦,使用when方法我感觉也不是很方便
第一个问题:
什么东西都写在控制层,感觉好像是灵活,但您有没有发现貌似您是 控制层 程序员,所有的逻辑都在控制层,模型专门提供数据给控制使用,那么,关于数据的处理,放在模型里总要比在控制层处理好吧!大概就这个道理。 如果是 MVC模型,那么您已经知道了 C层 控制层, 现在要跳出您的 面向过程 编程,站的更高看待问题。至于 “为甚要使用 api 资源”这个问题会伴随着您开发经验,猛然一天就明白,它不过是抽象出来以“面向过程”编程出来的重复逻辑,现在直接把这部分拿出来,减少重复代码,使编程变得优雅。
第二个问题:
when
可以理解为一个工具,您可以依据所处项目需求判断它是否适合。您举的例子,接口调用同一个数据,但每个接口又返回独特的处理后的数据,反过来想就是,数据为同一个,只是不同请求给不同的信息,这个时候在 Eloquent 模型里面用when
就显得太复杂了(太多苛刻条件不合适),可以换其它方法实现。 如可以: 模型只提供统一数据,控制器根据接口需求,筛选数据然后返回,因为变化的是您接口的要求(比如接口只要电话号码),而数据始终都是固定的。