小编Fab*_*lio的帖子

GraphQL和微服务架构

我试图了解GraphQL最适合在微服务架构中使用的位置.

关于只有1个GraphQL架构作为API网关代理对目标微服务的请求并强制其响应存在争议.微服务仍然会使用REST/Thrift协议进行通信思考.

另一种方法是每个微服务一个多个GraphQL模式.拥有一个较小的API网关服务器,使用请求的所有信息+ GraphQL查询将请求路由到目标微服务.

第一种方法

将1个GraphQL架构作为API网关将有一个缺点,每次更改微服务合同输入/输出时,我们必须在API网关侧相应地更改GraphQL架构.

第二种方法

如果每个微服务使用多个GraphQL模式,那么在某种程度上是有意义的,因为GraphQL强制执行模式定义,并且消费者需要尊重微服务给出的输入/输出.

问题

  • 在哪里可以找到适合设计微服务架构的GraphQL?

  • 您将如何使用可能的GraphQL实现设计API网关?

architecture microservices graphql

145
推荐指数
5
解决办法
3万
查看次数

数据库查询构建器toArray()laravel 4

我正在尝试使用该方法将查询转换为数组,toArray()但它不适用于查询构建器.转换的任何想法吗?

DB::table('user')->where('name',=,'Jhon')->get()->toArray();
Run Code Online (Sandbox Code Playgroud)

query-builder laravel-4

38
推荐指数
4
解决办法
7万
查看次数

具有Angular UI-Router的动态body类

我正试图找到一种优雅的方式来获得一个自定义动态类的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 配置文件时,正文将具有默认类或

你是如何实现这一目标的?

javascript angularjs angular-ui-router

20
推荐指数
2
解决办法
1万
查看次数

将对象放入Amazon s3/PHP目录中

我需要将我的文件上传到我在亚马逊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)

如何定义此文件应在给定目录上的上传位置?

php amazon-s3 amazon-web-services

16
推荐指数
1
解决办法
2万
查看次数

在eloquent/Laravel上保存期间发现意外数据

我在数据库上还有一个字段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

我不知道如何弄清楚这个问题是否有任何建议值得赞赏

php eloquent laravel-4 php-carbon

14
推荐指数
1
解决办法
2万
查看次数

如何在github和packagist上创建包的版本?PHP具体

我为laravel 4框架创建了一个包,并将其推送到github和packagist.

要安装它,它需要dev-master我的作曲家版本,但我希望它作为版本1.0我怎么能这样做?

将来我会在我的软件包上添加一些人员,我还需要升级版本,这是管理我们软件包版本的逻辑吗?

php package composer-php

14
推荐指数
1
解决办法
6106
查看次数

禁止您无权访问此服务器.Centos 6/Laravel 4

在我完成设置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的文件夹存储,但我仍然得到相同的错误任何建议,请?我无法弄清楚这个问题我疯了!感谢您的任何帮助.

apache httpd.conf http-status-code-403 laravel laravel-4

12
推荐指数
3
解决办法
8万
查看次数

针对数据库的集成测试 - AVA

在编写单元测试之后,我面临集成测试,其中包括针对数据库(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 …

ava

12
推荐指数
1
解决办法
1083
查看次数

无法发送会话cookie - 标头已经发送过PHPUnit/Laravel

我有一个奇怪的问题当我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开始)

可能是什么问题?谢谢你的帮助.

php phpunit unit-testing laravel-4

11
推荐指数
2
解决办法
9268
查看次数

如何在UnitTesting Laravel 4上模拟App :: make()

我在单元测试我的应用程序时遇到了一个问题.我有一个需要依赖的方法,但只有那个方法需要它,所以我想不要用构造注入它,而是用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)

unit-testing mocking laravel-4

9
推荐指数
1
解决办法
3487
查看次数