Php 使用公共RESTful API的应用程序体系结构&x2B;本地访问API
我正在计划一个小型的web应用程序项目,它将由一个网站(使用PHP)和未来的一个移动应用程序组成。我想实现一个RESTful API(使用PHP)来与移动应用程序通信。但是由于API和网站都将用PHP编写并托管在同一台服务器上,因此从网站向公共API进行HTTP调用似乎有点奇怪(或者不是吗) 无论如何,我正在考虑在API和业务逻辑之间放置一个层,基本上只是由一个对象组成,该对象公开了与公共RESTful API相同的API,但作为一个可以直接从网站访问的PHP对象Php 使用公共RESTful API的应用程序体系结构&x2B;本地访问API,php,rest,api,design-patterns,restful-architecture,Php,Rest,Api,Design Patterns,Restful Architecture,我正在计划一个小型的web应用程序项目,它将由一个网站(使用PHP)和未来的一个移动应用程序组成。我想实现一个RESTful API(使用PHP)来与移动应用程序通信。但是由于API和网站都将用PHP编写并托管在同一台服务器上,因此从网站向公共API进行HTTP调用似乎有点奇怪(或者不是吗) 无论如何,我正在考虑在API和业务逻辑之间放置一个层,基本上只是由一个对象组成,该对象公开了与公共RESTful API相同的API,但作为一个可以直接从网站访问的PHP对象 这是个好主意还是个坏主意?为什
- 事实证明,它对测试也非常有用,使用您最喜欢的测试玩具,可以轻松地构建和练习爬上抽象阶梯李>
- 您的移动数据体系结构可以是网关对象模型的直接同构
- 它很好地解耦了直接的php访问,并且它仍然允许您在重要的时候保留一些东西:身份验证、日志记录、数据库访问的可跟踪性
- 它证明了你的设计的未来性:虽然现在看起来很傻,但你可能会发现你最终需要从不同的实例中获得www和移动演示。如果您做得好,将php演示迁移到使用RESTful API将是轻而易举的事
消息
对象,该对象将有许多“普通”类:
- 消息:普通的老php对象,没有副作用,没有持久性
- MessageDAO:消息的持久性管理器。基本积垢,没有业务逻辑,只是基本积垢
- MessageWF:业务逻辑提供的工作流
- IBMessageSpec:消息的规范
- OBMessage:我希望发送给调用方的消息的表示形式
在我的手机中,OBMessageSpec wihch本质上是一个IBMessageSpec,IBMessage映射服务器的OBMessage。这段代码几乎可以被多种实例类型和应用程序重用。这是个不错的主意。您可以通过一些
API网关对象
为内部PHP使用提供API,并公开使用相同API网关对象的restfulapi
。它可能被命名为Adapter
,因为它通过HTTP使您的php API适应外部服务的使用
但是为什么你需要一些已知的模式来使用它?它完美地满足了您的需求,这种体系结构允许您保持模块的一致性并避免逻辑的重复
您可以在PHP端使用RESTful,它会更慢,但更灵活-也许将来您需要用其他语言重写后端-您不需要更改前端
因此,由您自己决定,什么对您更有利,而不是模式。您认为网关对象相对于直接从表示层和ReST层到业务层的通信有什么优势?