weew/http-blueprint

非常基础的蓝图服务器,用于API原型设计。

v2.1.0 2016-07-27 05:14 UTC

README

Build Status Code Quality Test Coverage Dependencies Version Licence

目录

安装

composer require weew/http-blueprint

简介

这个小巧的包允许你轻松启动一个服务器,可能在单元测试期间使用。它由两部分组成,服务器和代理。服务器负责启动和停止http服务器。代理主要负责获取所有已注册的路由,确定应该调用哪个路由并返回一个http响应。

这个包主要是为测试http层http客户端而构建的,在这些测试中,我无法简单地模拟端点,而必须实际测试整个http通信以及生成的请求和响应。但最终我认为这是一个非常有用的包,也可能在其他地方得到应用。

创建蓝图

创建一个文件作为你的蓝图。在那里注册你的路由。让代理做其他的事情。

// file: blueprint.php

// create a proxy
$proxy = new BlueprintProxy();

// register all of your routes
$proxy->getRouter()
    ->get('/', 'hello world')
    ->get('about', new HttpResponse(HttpStatusCode::OK, 'foo'))
    ->post('post', function() {
        return 'hello world';
    })
    ->put('users/{id}', function(IHttpRequest $request, array $parameters) {
        return new HttpResponse(HttpStatusCode::OK, $parameters['id']);
    });

// send a response
$proxy->sendResponse();

启动和停止服务器

这非常简单。只需传入主机名、你希望使用的端口以及你创建的蓝图文件的路径。

$server = new BlueprintServer('localhost', 9000, '/path/to/blueprint.php');
$server->start();

完成后,只需停止服务器。

$server->stop();

相关项目

  • HTTP层:提供响应和请求对象,处理cookies、headers等。
  • HTTP服务器:允许你在所选目录中启动一个http服务器。
  • HTTP客户端:允许你发送HttpRequest并接收HttpResponse对象。
  • 路由器:允许你创建复杂的路由并将它们映射到响应。