php - PHP : functions, 或类中 API 的最佳实践?

标签 php api function model class

在我的公司,我们开发了一些应用程序。我们必须为一个应用程序(比如应用程序 A)创建一个 API,以便其他应用程序可以使用它(及其数据)。

问题是:我们已经为应用程序 A 的模型开发了 PHP 类,如果我们想创建一个 API,我们应该:
- 重新使用这些类(API 的功能太多,太重了……)
- 创建一个具有一些基本功能的 PHP 类,它接受输入并仅返回原始值(如字符串、数组……不是复杂的类)
- 创建另一组 PHP 类,更简单,并且仅供外部应用程序使用(因此仅用于轻松获取数据)

通常,API 是第二个解决方案(与 PHP 一起使用,而不是作为 web 服务使用),但我发现我们做了一个复杂而有用的类模型化太糟糕了,然后我们将它拆开有函数,字符串和数组。 第三个在我看来是妥协,但我的一位同事坚持认为这不是 API。太糟糕了...

你怎么看?

最佳答案

从架构的角度来看,解决方案 3 可能是最好的解决方案。基本上你使用的是 Facade Design Pattern来简化您的 API。因为我现在正在处理它:在Patterns Of Enterprise Application Architecture这种方法被描述为 service layer这是完全有道理的,因为您不想让任何用户(意味着将处理您的 API 的任何人)暴露于比实际需要或期望的更复杂的情况。

这包括使用最简单的接口(interface)和传输对象(如果有意义的话是原始值)。一旦通过远程服务(如网络服务)调用 Facade,您最终将不得不将响应和请求分解为原始值(数据容器)。

关于php - PHP : functions, 或类中 API 的最佳实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290202/

相关文章:

php - 如何将 PHP 表格下载到 CSV 文件中

api - Netbeans 和 Redmine 集成

Python: '_io.TextIOWrapper' 类型的对象没有 len()

java在reterofit 2 api调用中找不到局部变量

sql - PostgreSQL:ST_GeomFromText(未知)不存在

function - Rust 中的函数原型(prototype)是什么?

php - 在 PHP 中指定类的对象类型的方法

php - 执行更新时存储过程失败

javascript - 将 div 标签脚本复制到 input 标签

ios - 好用的Afnetworking/Nsurlsession/Alamofire