允许客户端编码人员发布 JSON 并从 Web 服务获取完整视图


allow client coder to post json and get a full view back from web service

我在 laravel 5 中编写了一个调度应用程序,它基本上从本地存储构建了一些 json,并将其发送到控制器,然后发送到视图。 该视图主要是解析 JSON 并构建计划的 JavaScript。 我想扩展它以允许客户端编码人员生成自己的 json 并将其发布到我的应用程序,并让我的应用程序向他们发送完整的视图/计划。

我正在使用 php 7 和 php -S 选项来启动 2 台服务器 - 一台托管我拥有的主计划,另一台托管发布到计划的客户端测试代码。

require 'vendor/autoload.php';
use GuzzleHttp'Client;
$uri ='/api/clientJSON'; 
$uri_token ='eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdDo4MDAwXC9hcGlcL2F1dGhlbnRpY2F0ZSIsImlhdCI6MTQ1Njg0NDI1NiwiZXhwIjoxNDU2ODQ3ODU2LCJuYmYiOjE0NTY4NDQyNTYsImp0aSI6IjI2ODZjZWIwNjI2ZDVmZWE1YmVlZjMwNzM0ZDhkMzZmIn0.hWrIGNGLlIHOLP9FltefsN066WOHpGTm2SmsF6feAsI'; 
$calendarJson = '{"auth":"test"}';
$client = new Client([
    'base_uri' => 'http://localhost:8000',
    'timeout'  => 2.0,
]);

$response = $client->request('POST', $uri, [
    'query'=>['token' => $uri_token],
    'form_params' => [
        'calendarJson' => $calendarJson
    ]
]);
echo $response->getBody();

这个问题似乎是,虽然正文确实回显出来,但它只拉入 HTML 页面并且没有加载所有依赖的 JS/CSS 文件。 我显然缺少有关构建Web服务的基本知识。 有人可以开导我吗?

虽然Guzzle是一个PHP HTTP客户端,但它不是一个Web浏览器。 因此,它将执行HTTP请求,但它不会解析响应以确定是否需要下载或需要下载哪些其他文件才能正确查看内容。

如前所述,如果请求作,并且响应包含对外部存储的javascript或CSS文件的引用,则不会请求它们。

多年来,互联网一直非常擅长模糊内容和呈现之间的界限。 作为服务提供商,您感兴趣的是从外部来源获得的内容,而不是这些外部来源如何呈现它。