如何落地应用(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);

}

};

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

  1. 年度第一首发。阿里Java顶级架构师面试标准手册对标P8,牛×啊

    年度第一首发!Java高级架构师面试技术标准手册(对标阿里P7架构师) 最新一年的金三银四面试跳槽季已经拉开序幕有些日子,很多小伙伴开始实行了跳槽工程.我找了很多资料把他总结了一套最新的面试题套餐资料 ...

  2. Java基础知识第二讲:Java开发手册/JVM/集合框架/异常体系/Java反射/语法知识/Java IO

    Java基础知识第二讲(Java编程规范/JVM/集合框架/异常体系/Java反射/语法知识/Java IO/码出高效) 分享在java学习及工作中,常使用的一些基础知识,本文从JVM出发,讲解了JV ...

  3. Java Threads 多线程10分钟参考手册

    1         同步 如何同步多个线程对共享资源的访问是多线程编程中最基本的问题之一.当多个线程并发访问共享数据时会出现数据处于计算中间状态或者不一致的问题,从而影响到程序的正确运行.我们通常把这 ...

  4. Java新手极简指北手册

    在理论上, 理论和实践是没有差异的; 但在实践中, 是有的. In theory, there is no difference between theory and practice. But in ...

  5. 什么?超过60%的开发者都开始从Java 8 升级到 Java 11了?

    随着Java版本命名规则的改革,我们时不时的见到Java又出新版本的消息,DD这边因为长期从事Java方向的开发,所以也一直关注并与大家分享这方面的咨询. 每次说到Java升级,几乎在留言中都会看到这 ...

  6. JMS : Java Message Service (Java消息服务)之一 [转]

    为什么80%的码农都做不了架构师?>>>    1 引言 1.1 编写目的 本文作为B2bi项目中开源产品JORAM的使用指导文档,旨在帮助项目组人员方便明了的进行JMS模块的详细设 ...

  7. Java DB中的Java用户定义类型(UDT)

    Java DB是基于Java编程语言和SQL的关系数据库管理系统. 这是Apache软件基金会的开源Derby项目的Oracle版本. Java SE 7 SDK中包含Java DB. 用户定义类型( ...

  8. Java DB中的Java存储过程

    1 Java存储过程 这篇文章是关于Java DB中的Java存储过程的. Java DB是基于Java编程语言和SQL的关系数据库管理系统. 这是Apache软件基金会的开源Derby项目的Orac ...

  9. 尚学堂java培训_送给 Java 自学者或者初学者的最全知识清单,2020 年 Java 就该这么学...

    最近逛知乎,发现有很多想自学 Java 或者 Java 初学者提问,不知道如何学习 Java?我接触 Java 快 8 年的时间了,一直从事 Java 开发工作,自己一直升级打怪,对于如何更好的学习 ...

  10. java获取系统信息:java的信息、操作系统的信息、用户的信息、虚拟机的信息、系统设置的信息。

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java获取系统信息:java的信息.操作系统的信息.用户的信息.虚拟机的信息.系统设置的信息. package com.lp.app.windo ...

最新文章

  1. 服务器拷贝文件提示ms-dos功能无效,win7系统复制文件提示“MS-DOS功能无效”的解决方法...
  2. AbstractQueuedSynchronizer原理分析
  3. vim 删除行_【收藏】138条 Vim 命令、操作、快捷键全
  4. python海龟绘图_Python教学案例|海龟绘图三例
  5. i7 6700k linux,i7-6700k超频至4.8G最稳定 i7-6700K开盖液态金属测试
  6. hdu 4665 搜索
  7. 判断浏览器类型和版本
  8. 计算机网络 IP地址分为那两部分
  9. 简单无迹kalman的matlab程序,卡尔曼滤波原理及应用——MATLAB仿真
  10. c 语言编写的一元二次方程的根,C#程式求一元二次方程根
  11. python计算三角形斜边上的中线_直角三角形斜边上的中线的性质及其应用
  12. flv转换mp4最简单方法
  13. Reporter对象的几个鲜为人知的方法
  14. Matplotlib——条形图_3、分组条形图_4、堆叠条形图
  15. python 下载qq群文件_利用多线程快速下载腾讯QQ群文件的方法
  16. 室内定位:基于NB/LTE Cat.1蜂窝网络的穿戴设备定位 BLE-4
  17. 长春欲造“书城” 自助图书馆让读者在家门口畅快阅读
  18. 网页左右两边加广告横幅
  19. Tomcat 7.0 配置
  20. 【评测】IDT发布ZEN 或 TAO 双淬灭探针

热门文章

  1. C语言里面100UL是什么意思
  2. 帆软公式如何用数据库字段_高考数学必背100招:如何用构造法求数列通项公式?...
  3. [SSL_CHX][2022-1-28]n皇后问题
  4. 概率论中PDF、PMF和CDF的区别与联系
  5. Unity快速入门之台球小游戏(二)
  6. 使用STM32CubeProgrammer烧录STM32芯片
  7. MySql数据库操作详解
  8. flutter仿ReadHub+
  9. Executable: C:\PhoneYou\roshan-0.6.6\bin\RoshanQuick.exe
  10. 关注虚拟财富“.ME” 域名的投资价值