currency-fair/integration-irish-bank

与巴西银行的集成示例。

dev-master 2020-01-26 23:16 UTC

This package is auto-updated.

Last update: 2024-08-27 09:34:56 UTC


README

CircleCI

与爱尔兰银行的集成(欧元交易示例)

描述

这是我创建的一个包,用于与爱尔兰银行进行交易。所有欧元交易都由爱尔兰银行处理。

文件结构遵循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

注意

  1. 我已经开发了一个类似的结构,但更大。这个结构现在正在一个电子商务中使用,该电子商务与200多种不同的API集成。
  2. CircleCi正在运行构建和单元测试。