currency-fair / integration-brazilian-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 10:35:37 UTC
README
与巴西银行的集成(欧元交易示例)
描述
这是一个我创建的用于与巴西银行进行交易的包。所有欧元交易都由巴西银行处理。
文件结构遵循Integration Irish 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-brazilian-bank
注意:这将是必要的,我已经将其添加为依赖项。
运行单元测试
composer install
php vendor/bin/phpunit
备注
- 我已经开发了一个类似的结构,但更大。这个结构今天正在一个电子商务中使用,该电子商务与200多种不同的API集成。
- CircleCi正在运行构建和单元测试。