ticaje / m2-connector
无差别的源连接器
Requires
- php: ~7.1.3||~7.2.0||~7.3.0
- magento/product-community-edition: *
- phpseclib/phpseclib: ^2.0
- ticaje/base: ^1.0
- ticaje/m2-contract: ^1.0
Requires (Dev)
- allure-framework/allure-phpunit: ~1.2.0
- friendsofphp/php-cs-fixer: ~2.14.0
- lusitanian/oauth: ~0.8.10
- magento/magento-coding-standard: ~3.0.0
- magento/magento2-functional-testing-framework: 2.4.5
- pdepend/pdepend: 2.5.2
- phpmd/phpmd: @stable
- phpunit/phpunit: ~6.5.0
- sebastian/phpcpd: ~3.0.0
- squizlabs/php_codesniffer: ~3.4.0
This package is auto-updated.
Last update: 2024-09-10 18:28:58 UTC
README
前言
这是一个持续进行的项目,简单来说,我将提供指导方针来理解它的目的和最常用的使用案例。
众所周知,在Web服务中公开的API定义了一系列其他系统为了与之交互而必须遵守的政策,以便实现通信,从而满足业务需求。
本主题中描述的模块构成了一种中间件,简化了设计者的工作,因为它允许在实现与外部API的交互时关注高级用例。
安装
您可以使用composer(我唯一推荐的方式)安装此软件包。
composer require ticaje/m2-connector
功能
此模块使用基础合同模块来遵守该模块中声明的基于合同设计方法的基础。
目的是建立一个标准流程来构建可扩展的外部API连接器,以标准化重复性任务,如认证、请求和处理API响应,并为定义数据和服务的合同留出空间,这是领域模型的实际差异化因素。
这种方法的目的是提供一个框架,允许设计者以最小的努力反映特定领域可能涉及的业务策略。这样,架构师可以专注于创建纯业务实现,并将基础设施问题留给这个中间件。
扩展组件
扩展结构,非常明确
- 工厂:负责创建低级别组件依赖项的低级别模块,例如登录和认证提供者。
- 客户端:中级模块,它封装外部API消费者,到目前为止支持REST和SOAP。它提供基本操作。
- 登录提供者:负责提供登录覆盖的中级模块
- 认证提供者:提供认证的中级模块。
上述所有模块都实现了相应的接口,因此开发人员可以通过依赖注入容器构建所需解决方案,因为高级方法规定了隔离服务驱动的设计。
有趣的一侧
关于创建每个特定领域的配方
例如,默认情况下,REST连接器使用Guzzle库来抽象连接到REST API时的低级别用例,您不想或不能使用Guzzle,那么创建一个新的虚拟类型客户端工厂接口(如在di.xml文件的第4行所示)并定义对其的依赖,这样您的较高级别模块将使用这个新的虚拟类型。
另一方面,令牌提供者使用我们刚才定义的相同REST客户端来实现请求令牌的特定逻辑。每当需要新的实现时,可以通过继承和接口实现的力量使用,以实现特定的领域建模。
顺便说一句,这个非常具体的实现虽然最小化,但完全是函数式的;即使如此,在适当的条件下,也可以通过少量副作用将其覆盖,因为已经应用了服务隔离模式。
文档和演示
该模块的示例实现已在一个虚拟模块中实现,请随意使用它。
同样,基础合同模块的文档也可用,您可以开始研究它。
贡献
请参阅CONTRIBUTING以获取详细信息。
致谢
许可证
GNU通用公共许可证(GPLv3)。请参阅许可证文件获取更多信息。