graphql java如何使用_graphql-java使用手册:part10 如何落地应用(Application concerns)...

如何落地应用(Application concerns)

graphql-java 引擎主要的关注点是按 GraphQL 规范来执行查询。

它本身不关注应用的其它方面,如:

数据库访问

缓存数据

数据权限控制

数据分页

HTTP 转换

JSON 编码

依赖注入的编程方法

你需要在自己的业务逻辑层中实现这些。

下面是一些相关方案的介绍:

上下文对象(Context Objects)

为更方便的业务调用,你可以在查询执行中加入Context Object。

例如,你的应用的边界模块可能会做用户识别,然后 GraphQL

查询执行时,你可以想做数据权限控制。

下面例子演示怎么向你的查询传递信息:

//

// this could be code that authorises the user in some way and sets up enough context

// that can be used later inside data fetchers allowing them

// to do their job

//

UserContext contextForUser = YourGraphqlContextBuilder.getContextForUser(getCurrentUser());

ExecutionInput executionInput = ExecutionInput.newExecutionInput()

.context(contextForUser)

.build();

ExecutionResult executionResult = graphQL.execute(executionInput);

// ...

//

// later you are able to use this context object when a data fetcher is invoked

//

DataFetcher dataFetcher = new DataFetcher() {

@Override

public Object get(DataFetchingEnvironment environment) {

UserContext userCtx = environment.getContext();

Long businessObjId = environment.getArgument("businessObjId");

return invokeBusinessLayerMethod(userCtx, businessObjId);

}

};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值