对于 API 资源使用的几个疑问?需要大家来帮助解惑

1:我可以直接在控制器中拼接一个数组返回,这样灵活性更大,为甚要使用api资源
2:接口1需要返回user模型的id,nickname字段,接口2需要返回user模型的phone字段,接口3需要返回id,points字段,那么我需要建立3个user模型的资源类吗?这样不是很麻烦,使用when方法我感觉也不是很方便

mushu
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

第一个问题:
什么东西都写在控制层,感觉好像是灵活,但您有没有发现貌似您是 控制层 程序员,所有的逻辑都在控制层,模型专门提供数据给控制使用,那么,关于数据的处理,放在模型里总要比在控制层处理好吧!大概就这个道理。 如果是 MVC模型,那么您已经知道了 C层 控制层, 现在要跳出您的 面向过程 编程,站的更高看待问题。至于 “为甚要使用 api 资源”这个问题会伴随着您开发经验,猛然一天就明白,它不过是抽象出来以“面向过程”编程出来的重复逻辑,现在直接把这部分拿出来,减少重复代码,使编程变得优雅。

第二个问题:
when 可以理解为一个工具,您可以依据所处项目需求判断它是否适合。您举的例子,接口调用同一个数据,但每个接口又返回独特的处理后的数据,反过来想就是,数据为同一个,只是不同请求给不同的信息,这个时候在 Eloquent 模型里面用 when 就显得太复杂了(太多苛刻条件不合适),可以换其它方法实现。 如可以: 模型只提供统一数据,控制器根据接口需求,筛选数据然后返回,因为变化的是您接口的要求(比如接口只要电话号码),而数据始终都是固定的。

4年前 评论
讨论数量: 4
Epona

多个接口都需要返回相同格式的内容的时候就体现出 API Resource 的优势了。
第2个问题是比较无解的,可以把 id,nickname,phone,等都返回。

说到底这是RESTFul的劣势,(然而是GraphQL的优势)

4年前 评论
小李世界 1年前

继承并调用基类方法或者自己写个能够简单共享相同结构的工具https://learnku.com/articles/30016

4年前 评论

第一个问题:
什么东西都写在控制层,感觉好像是灵活,但您有没有发现貌似您是 控制层 程序员,所有的逻辑都在控制层,模型专门提供数据给控制使用,那么,关于数据的处理,放在模型里总要比在控制层处理好吧!大概就这个道理。 如果是 MVC模型,那么您已经知道了 C层 控制层, 现在要跳出您的 面向过程 编程,站的更高看待问题。至于 “为甚要使用 api 资源”这个问题会伴随着您开发经验,猛然一天就明白,它不过是抽象出来以“面向过程”编程出来的重复逻辑,现在直接把这部分拿出来,减少重复代码,使编程变得优雅。

第二个问题:
when 可以理解为一个工具,您可以依据所处项目需求判断它是否适合。您举的例子,接口调用同一个数据,但每个接口又返回独特的处理后的数据,反过来想就是,数据为同一个,只是不同请求给不同的信息,这个时候在 Eloquent 模型里面用 when 就显得太复杂了(太多苛刻条件不合适),可以换其它方法实现。 如可以: 模型只提供统一数据,控制器根据接口需求,筛选数据然后返回,因为变化的是您接口的要求(比如接口只要电话号码),而数据始终都是固定的。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!