小编tia*_*ive的帖子

GraphQL和微服务

在我的公司,我们决定为一个新项目提供微服务架构.我们已经了解了GraphQL,并意识到它作为我们的单一API端点使用的潜力和优势.

我们不同意的是如何在GraphQL和每个微服务之间进行通信.有些人认为REST,其他人说我们也应该为每个服务都有一个graphQL端点.

我想知道每个人的优点和缺点是什么.例如,使用graphQL中的所有内容似乎有点多余,因为我们将在每个服务中复制模式的一部分.另一方面,我们使用GraphQL来避免一些REST陷阱.我们担心拥有REST端点会使从gQL中获得的优势无效.

有没有人遇到过类似的困境?我们都不熟悉GraphQL,所以我们可能会缺少一些明显的赞成和反对意见吗?

提前致谢!

architecture rest microservices graphql

13
推荐指数
1
解决办法
2412
查看次数

动画中的Angular 2动态值

我刚刚开始搞乱Ng2,现在我正在开发一个带有ionic2的应用程序.我是第一次进入动画部分,我遇到了一些问题.

我有一个基本上重复不同宽度的ng.数组中的每个元素都有自己的div的宽度值,该值是通过组件的onInit方法计算出来的.在动画之前,我通过绑定宽度[style.width]="expresson".文档说您可以使用'*'定义动画结束状态样式,这意味着它将从计算的样式中获得正确的值,但是当我以编程方式自己设置宽度时,这不起作用.

所以,问题是,我如何告诉动画在我改变宽度时触发,或动态设置结束状态的值?谢谢!

编辑:这是一个有例子的傻瓜.我将动画设置后的最终宽度设置为50%,但是我遇到的问题是将最终宽度设置为组件数组中定义的值.只需删除html中的@animation即可查看我想要的最终结果.

web-animations ionic2 angular

6
推荐指数
0
解决办法
2016
查看次数

Knexjs PgSQL json查询

我在 Postgres 中有一个列存储一些 JSON 数据。JSON 没有定义模式,但应该可以搜索具有某些指定键的所有记录。

我正在使用 KnexJS 构建查询,到目前为止我想出了这个:

tx.select('*').from('table')
.whereRaw('cast(data->>? as ?) = ?', [key, type, JSON.parse(value)]));
Run Code Online (Sandbox Code Playgroud)

但它不起作用,因为我认为不可能指定类型。

不过,当我尝试像这样手动指定它时:

tx.select('*').from('table')
.whereRaw('cast(data->>? as boolean) = ?', [key, JSON.parse(value)]));
Run Code Online (Sandbox Code Playgroud)

还是不行啊!这是使用时控制台的日志DEBUG:knex:*

{ key: 'admin', value: 'true', type: 'boolean' }
  knex:tx trx1: Starting top level transaction +0ms
  knex:pool INFO pool postgresql:pg:client0 - dispense() clients=1 available=0 +2ms
  knex:client acquired connection from pool: __knexUid2 +38ms
  knex:query BEGIN; +2ms
  knex:bindings undefined +1ms
  knex:query select * from "contexts" where cast(data->>? as boolean) = ? +18ms
  knex:bindings …
Run Code Online (Sandbox Code Playgroud)

javascript postgresql json node.js knex.js

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

在迭代数组时,榆树减少计数器

我最近决定更深入地研究函数式编程,我决定从Elm开始.

我对此非常缺乏经验,所以我觉得我实际上是在与概念和语言作斗争,而我的思维过程都是错误的,所以我希望有人可以帮助我完成简单的练习.

我正在尝试创建一个扫雷游戏,对于初学者来说,我只是想用一个地雷来填充网格.

到目前为止,这是我的代码

import Array exposing (Array)


type State = Hidden | Tagged | Revealed
type alias Cell = {isMine: Bool, nearbyMines: Int, state: State}
type alias Board = Array (Array Cell)

mines : Int
mines = 100

initCell : Cell
initCell = 
  {isMine = False, nearbyMines = 0, state = Hidden}

generate : Int -> Int -> Board
generate lines cols =
  Array.initialize lines (\y -> 
    Array.initialize cols (\x -> initCell))


markAsMine : Int -> Int -> Cell …
Run Code Online (Sandbox Code Playgroud)

functional-programming elm

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