currency-fair / integration-irish-bank
与巴西银行的集成示例。
Requires
- eloquent/enumeration: ^6.0
- guzzlehttp/guzzle: ^6.5
- vlucas/phpdotenv: v3.6.0
Requires (Dev)
- mockery/mockery: ^1.3
- phpunit/phpunit: ^7.4
- wanfeiyy/dd: ^1.0
This package is auto-updated.
Last update: 2024-08-27 09:34:56 UTC
README
与爱尔兰银行的集成(欧元交易示例)
描述
这是我创建的一个包,用于与爱尔兰银行进行交易。所有欧元交易都由爱尔兰银行处理。
文件结构遵循Integration Brazilian Bank的相同结构。想法是创建一个更容易的结构,以便团队中的所有开发者快速集成另一个平台/API,易于测试,易于扩展和更改行为,同时使用设计模式和面向对象。
文件结构
Integration
:所有集成文件都在这个文件夹中。
Integration\Contract
:项目的主要接口在这个文件夹中。在实际项目中,我们应该有一个作为主包的另一个包,其中我们可以集中一些接口。
Integration\Entity
:这些类是API发送或检索的对象的表示。它们是项目使用的唯一已知事物。我们可以将其称为著名的DTO(数据传输对象)的实现。
Integration\Exception
:由本集成专门创建的异常。它们可以被使用它的人捕获。
Integration\Factory
:这个文件夹包含所有用于简化“解析器”、“格式化器”和“请求者”创建的工厂。它们是“简单工厂”的实现,它们真的很简单(带有开关),然而,我认为没有必要实现“工厂方法”,它会增加复杂性(有大量的类)并且我确信解析器、格式化器和请求者的数量不会增加太多。
Integration\Formatter
:格式化器背后的想法是将对象(实体)转换为JSON、XML或其他你想要的任何形式。这些格式化的对象将通过API发送。
Integration\Parser
:解析器背后的想法几乎与格式化器相同,但是解析器是将API的响应转换为客户端使用这些包作为依赖项而知的实体。
Integration\Requester
:请求者是负责向API发出请求的类,我们应该为每个端点有一个。它们有一个Guzzle Http的实例,但这个部分将得到改进(不幸的是我没有时间实现它)。我认为HTTP客户端应该在集成的主包中(未实现)。
Client
:这个类充当外观,通过这个类使用包。它正好是一个外观模式,我们调用分组解析器、格式化器和请求者的方法。
tests
:这个包的所有单元测试都在这里。我认为覆盖率很好。
如何使用它?
composer require gabrielanhaia/currency-integration-irish-bank
注意:这并不必要,我已经将其作为依赖项添加。
运行单元测试
composer install
php vendor/bin/phpunit
注意
- 我已经开发了一个类似的结构,但更大。这个结构现在正在一个电子商务中使用,该电子商务与200多种不同的API集成。
- CircleCi正在运行构建和单元测试。