PSR-7、PSR-17和PSR-18的推出都是一项计划的一部分,旨在使
构建需要以 HTTP 客户端无关的方式向服务器发送 HTTP 请求的应用程序
我一直在使用许多历史上严重依赖 Guzzle 而不是抽象接口的应用程序。这些应用程序中的大多数使用包含 JSON 正文的 GET 或 POST 请求以及也包含 JSON 正文的响应来发出简单的 API 请求,或者针对 HTTP 4xx 或 5xx 错误抛出异常。
这个问题来自最近的一个项目,在该项目中,我尝试开发一个 API 包,该包没有明确依赖于 Guzzle,而是仅依赖于 PSR 接口。
这个想法是创建一个ApiWrapper可以使用以下方式启动的类:
ClientInterfaceRequestFactoryInterfaceStreamFactoryInterface这个类将有它需要的任何东西:
ResponseInterface这样的 …