lmc/cqrs-http

一个包含帮助处理Http查询和命令的基本实现的库

3.1.0 2024-03-06 13:08 UTC

This package is auto-updated.

Last update: 2024-09-06 14:23:26 UTC


README

cqrs-types Latest Stable Version Tests and linting Coverage Status

一个包含帮助处理Http查询和命令的基本实现的库。此库是CQRS/Bundle的扩展,并增加了对PSR-7的支持。

目录

安装

composer require lmc/cqrs-http

注意:您还需要为HTTP扩展的实现提供PSR-7PSR-17PSR-18的实现。

查询

查询是一个请求,它获取数据但不改变任何内容。了解更多信息

AbstractHttpQuery

一个基本的HTTP查询,它抽象了使用Psr\Http\Message\RequestFactoryInterface(PSR-17)创建Psr\Http\Message\RequestInterface(PSR-7)的过程(它直接需要被注入到查询中)。

它还实现了ProfileableInterface功能。

AbstractHttpGetQuery

一个基本的HTTP GET 查询,它抽象了使用Psr\Http\Message\RequestFactoryInterface(PSR-17)创建Psr\Http\Message\RequestInterface(PSR-7)的过程(它直接需要被注入到查询中)。

它扩展了基本的AbstractHttpQuery并预定义了一些抽象方法。它还增加了CacheableInterface功能,因为GET请求通常是可以缓存的

提示:如果您想使用此实现但不需要缓存,您可以在getCacheTime方法的实现中简单地返回CacheTime::noCache()

查询处理器

它负责处理特定的查询请求并将结果传递给OnSuccess回调。了解更多信息

Http查询处理器

此处理器支持Psr\Http\Message\RequestInterface并将它处理成Psr\Http\Message\ResponseInterface

它还会检查响应的状态码,并将其标记为错误,如果它是错误代码

  • 400 -> HttpBadRequestException
  • 500 -> HttpServerErrorException

命令

命令是一个请求,它改变数据并且可能返回结果数据。了解更多信息

AbstractHttpCommand

一个基本的HTTP命令,它抽象了使用Psr\Http\Message\RequestFactoryInterface(PSR-17)创建Psr\Http\Message\RequestInterface(PSR-7)的过程(它直接需要被注入到命令中)。

它还实现了ProfileableInterface功能。

AbstractHttpDeleteCommand

一个基本的HTTP DELETE 命令,它抽象了使用Psr\Http\Message\RequestFactoryInterface(PSR-17)创建Psr\Http\Message\RequestInterface(PSR-7)的过程(它直接需要被注入到命令中)。

它扩展了基本的AbstractHttpCommand并预定义了一些抽象方法。

AbstractHttpPatchCommand

一个基本的HTTP PATCH 命令,它通过使用Psr\Http\Message\RequestFactoryInterface (PSR-17) 抽象创建一个Psr\Http\Message\RequestInterface (PSR-7)(直接需要注入到命令中)。

它扩展了基本的AbstractHttpCommand并预定义了一些抽象方法。

AbstractHttpPostCommand

一个基本的HTTP POST 命令,它通过使用Psr\Http\Message\RequestFactoryInterface (PSR-17) 抽象创建一个Psr\Http\Message\RequestInterface (PSR-7)(直接需要注入到命令中)。

它扩展了基本的AbstractHttpCommand并预定义了一些抽象方法。

AbstractHttpPutCommand

一个基本的HTTP PATCH 命令,它通过使用Psr\Http\Message\RequestFactoryInterface (PSR-17) 抽象创建一个Psr\Http\Message\RequestInterface (PSR-7)(直接需要注入到命令中)。

它扩展了基本的AbstractHttpCommand并预定义了一些抽象方法。

发送命令处理器

它负责处理特定的命令请求,并将结果传递给OnSuccess回调。 了解更多

Http Send Command Handler

此处理器支持Psr\Http\Message\RequestInterface并将它处理成Psr\Http\Message\ResponseInterface

它还会检查响应的状态码,并将其标记为错误,如果它是错误代码

  • 400 -> HttpBadRequestException
  • 500 -> HttpServerErrorException

响应解码器

它旨在解码响应(无论是QueryHandlerInterface还是SendCommandHandlerInterface的结果)。 了解更多

HttpMessageResponseDecoder

它通过获取响应体将Psr\Http\Message\ResponseInterface解码为Psr\Http\Message\StreamInterface

StreamResponseDecoder

它通过获取流内容将Psr\Http\Message\StreamInterface解码为string(如果可能的话)。

注意:还有一个JsonResponseDecoder,它将字符串解码为数组。

分析器格式化工具

HttpProfilerFormatter

它将Psr\Http\Message\MessageInterfacePsr\Http\Message\StreamInterface格式化为可读格式,以便在分析器中数据看起来更美观。