currency-fair/integration-brazilian-bank

与巴西银行的集成示例。

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

This package is auto-updated.

Last update: 2024-08-27 10:35:37 UTC


README

CircleCI

与巴西银行的集成(欧元交易示例)

描述

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

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

备注

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