我试图了解GraphQL最适合在微服务架构中使用的位置.
关于只有1个GraphQL架构作为API网关代理对目标微服务的请求并强制其响应存在争议.微服务仍然会使用REST/Thrift协议进行通信思考.
另一种方法是每个微服务一个多个GraphQL模式.拥有一个较小的API网关服务器,使用请求的所有信息+ GraphQL查询将请求路由到目标微服务.
第一种方法
将1个GraphQL架构作为API网关将有一个缺点,每次更改微服务合同输入/输出时,我们必须在API网关侧相应地更改GraphQL架构.
第二种方法
如果每个微服务使用多个GraphQL模式,那么在某种程度上是有意义的,因为GraphQL强制执行模式定义,并且消费者需要尊重微服务给出的输入/输出.
问题
在哪里可以找到适合设计微服务架构的GraphQL?
您将如何使用可能的GraphQL实现设计API网关?
我正在尝试使用该方法将查询转换为数组,toArray()但它不适用于查询构建器.转换的任何想法吗?
例
DB::table('user')->where('name',=,'Jhon')->get()->toArray();
Run Code Online (Sandbox Code Playgroud) 我正试图找到一种优雅的方式来获得一个自定义动态类的body标签,我可以从中轻松设置ui-router configurations,如果没有设置,我可以使用默认选项或无.
例:
routes.js
$stateProvider
.state('login', {
url: "/login",
template: 'Login'
})
.state('register', {
url: "/register",
template: 'Register'
}).
.state('profile', {
url: "/profile",
template: 'Profile'
});;
Run Code Online (Sandbox Code Playgroud)
简单的标记HTML
<html>
<body class=""> <!-- Dynamically class to change -->
<div ui-view></div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
场景:
1 - 访问state 登录我应该有正文的类等于auth
2 - 此时访问state 注册表它将具有相同的auth类
3 - 访问state 配置文件时,正文将具有默认类或无
你是如何实现这一目标的?
我需要将我的文件上传到我在亚马逊s3存储上创建的特定目录中.我总是将文件上传到我的桶的"绝对路径"上,这样做:
$s3->putObject(array(
'Bucket' => $bucket,
'ContentType' => $mime,
'Key' => $localImage,
'ACL' => 'public-read',
'SourceFile' => $localImage,
'CacheControl' => 'max-age=172800',
"Expires" => gmdate("D, d M Y H:i:s T", strtotime("+5 years")),
'Metadata' => array(
'profile' => $localImage,
),
));
Run Code Online (Sandbox Code Playgroud)
如何定义此文件应在给定目录上的上传位置?
我在数据库上还有一个字段created_at,updated_at因为TIMESTAMP字段名称是日期.
所以我getDates()在我的模型上覆盖了这个方法,因为我想要从Carbon实例化该字段.
public function getDates()
{
return ['date','created_at','updated_at'];
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在数据库上创建一个新记录时,它给我一个例外:
InvalidArgumentException找到意外数据.发现意外数据.发现意外数据.
Ps:从表单发送的值是欧盟格式: d-m-Y h:i
我不知道如何弄清楚这个问题是否有任何建议值得赞赏
我为laravel 4框架创建了一个包,并将其推送到github和packagist.
要安装它,它需要dev-master我的作曲家版本,但我希望它作为版本1.0我怎么能这样做?
将来我会在我的软件包上添加一些人员,我还需要升级版本,这是管理我们软件包版本的逻辑吗?
在我完成设置LAMP并安装了我的laravel 4应用程序后,我遇到了问题.一切似乎进展顺利,当我继续我的IP地址网址时,它正确显示我的应用程序的第一页,但页面的其余部分都给我一个404错误在此服务器上找不到请求的URL.
所以我添加到我的httpd.conf(在我的项目的虚拟主机下) - AllowOverride All Order允许,拒绝
<VirtualHost *:80>
ServerName VPS-IP-ADDRESS
DocumentRoot /var/www/html/nextmatch/public_html/public/
<Directory /var/www/html/nextmatch/public_html/public/>
AllowOverride all
Order allow,deny
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试导航而不是404错误我得到了禁止您没有权限访问此服务器.我设置了chmod 775 -R path/laravel/和777的文件夹存储,但我仍然得到相同的错误任何建议,请?我无法弄清楚这个问题我疯了!感谢您的任何帮助.
在编写单元测试之后,我面临集成测试,其中包括针对数据库(rethinkdb)测试库.
每个测试用例必须彼此独立,并且每次测试后数据库都将被清除,这样它们就不会产生误报.
由于AVA架构是并行运行测试,我发现我无法以这种方式实现正面测试.例如:
test.beforeEach(async function(t) {
const users = t.context.users = await DB.models.User.save([
{name: 'jhon',username: 'doe'},
{name: 'fabri',username: 'fenos'},
{name: 'will',username: 'red'},
{name: 'smith',username: 'blue'},
{name: 'paul',username: 'orange'},
{name: 'tesla',username: 'ele'},
]);
t.context.tasks = await DB.models.Task.save([
{title: 'My task1', description: 'My duty1', assignee_id: _.sample(users).id},
{title: 'My task2', description: 'My duty2', assignee_id: _.sample(users).id},
{title: 'My task3', description: 'My duty3', assignee_id: _.sample(users).id},
]);
});
test.afterEach(async (t) => {
return await DB.clearDB();
});
Run Code Online (Sandbox Code Playgroud)
我被迫使用串行功能允许每个测试完成并以串行方式清除DB.
如果测试同时共享相同的数据,我的测试可能会更新或删除可能导致误报的数据.
如果我正在写的测试只是读取数据,我只是做直播,只是作为清洁的工作pre,并post在问题中提到的脚本#311 …
我有一个奇怪的问题当我parent::setUp()在我的TestCase类上调用单元测试一个类时,我运行phpunit时它会抛出这个错误:
1)MatchRequestRepositoryTest :: test_find_requests_by_match_id ErrorException:session_start():无法发送会话cookie - 已经发送的头文件(输出从/var/www/project.dev/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:459开始)
可能是什么问题?谢谢你的帮助.
我在单元测试我的应用程序时遇到了一个问题.我有一个需要依赖的方法,但只有那个方法需要它,所以我想不要用构造注入它,而是用IoC容器类的App :: make()初始化它.但是现在我怎么能进行单元测试呢?
让我们举一个简短的例子来理解你如何对这个函数进行单元测试
class Example {
public function methodToTest()
{
$dependency = App::make('Dependency');
return $dependency->method('toTest');
}
}
Run Code Online (Sandbox Code Playgroud)
测试
public function test_MethodToTest() {
$dependency = m::mock('Dependency');
$dependency->shouldReceive('method')->once()->with('toTest')->andReturn(true);
$class = new Example();
$this->assertTrue($class->methodToTest('toTest')); // does not work
}
Run Code Online (Sandbox Code Playgroud) laravel-4 ×5
php ×4
unit-testing ×2
amazon-s3 ×1
angularjs ×1
apache ×1
architecture ×1
ava ×1
composer-php ×1
eloquent ×1
graphql ×1
httpd.conf ×1
javascript ×1
laravel ×1
mocking ×1
package ×1
php-carbon ×1
phpunit ×1