当前位置: 首页 > news >正文

网站服务器建设的三种方法wordpress自动标签页

网站服务器建设的三种方法,wordpress自动标签页,北京国互网网站建设报价,定制网站建设价格https://blog.csdn.net/qq362228416/article/details/50854980 背景 随着react的开源#xff0c;facebook相继开源了很多相关的项目#xff0c;这些项目在他们内部已经使用了多年#xff0c;其中引起我注意的就是本次讨论的是graphql#xff0c;目前官方只有nodejs版#…https://blog.csdn.net/qq362228416/article/details/50854980 背景 随着react的开源facebook相继开源了很多相关的项目这些项目在他们内部已经使用了多年其中引起我注意的就是本次讨论的是graphql目前官方只有nodejs版由于很多公司的后台技术栈都是java所以便有了graphql的java版实现在github上可以找到废话不多说直接看代码吧具体介绍还是去看官网吧不然就跑题了。 GraphQLSchema Schema相当于一个数据库它有很多GraphQLFieldDefinition组成Field相当于数据库表/视图每个表/视图又由名称、查询参数、数据结构、数据组成. 1 先定义一个数据结构GraphQLOutputType字段然后定义一个初始化方法 private GraphQLOutputType userType;private void initOutputType() {/*** 会员对象结构*/userType newObject().name(User).field(newFieldDefinition().name(id).type(GraphQLInt).build()).field(newFieldDefinition().name(age).type(GraphQLInt).build()).field(newFieldDefinition().name(sex).type(GraphQLInt).build()).field(newFieldDefinition().name(name).type(GraphQLString).build()).field(newFieldDefinition().name(pic).type(GraphQLString).build()).build(); } 2再定义两个表/视图它包括名称查询参数数据结构以及数据检索器 /*** 查询单个用户信息* return*/private GraphQLFieldDefinition createUserField() {return GraphQLFieldDefinition.newFieldDefinition().name(user).argument(newArgument().name(id).type(GraphQLInt).build()).type(userType).dataFetcher(environment - {// 获取查询参数int id environment.getArgument(id);// 执行查询, 这里随便用一些测试数据来说明问题User user new User();user.setId(id);user.setAge(id 15);user.setSex(id % 2);user.setName(Name_ id);user.setPic(pic_ id .jpg);return user;}).build();}/*** 查询多个会员信息* return*/private GraphQLFieldDefinition createUsersField() {return GraphQLFieldDefinition.newFieldDefinition().name(users).argument(newArgument().name(page).type(GraphQLInt).build()).argument(newArgument().name(size).type(GraphQLInt).build()).argument(newArgument().name(name).type(GraphQLString).build()).type(new GraphQLList(userType)).dataFetcher(environment - {// 获取查询参数int page environment.getArgument(page);int size environment.getArgument(size);String name environment.getArgument(name);// 执行查询, 这里随便用一些测试数据来说明问题ListUser list new ArrayList(size);for (int i 0; i size; i) {User user new User();user.setId(i);user.setAge(i 15);user.setSex(i % 2);user.setName(name _ page _ i);user.setPic(pic_ i .jpg);list.add(user);}return list;}).build();} 3接着定义一个Schema并将其初始化它包含一个名称以及一个或多个表/视图Field private GraphQLSchema schema;public GraphSchema() {initOutputType();schema GraphQLSchema.newSchema().query(newObject().name(GraphQuery).field(createUsersField()).field(createUserField()).build()).build();} 4完成以上步骤之后还需要定义一个model类名不限但是结构需要满足前面定义的数据结构而且必须是public的 public class User {private int id;private int age;private int sex;private String name;private String pic;// getter, setter... } 5之后写一个main方法来测试一下 public static void main(String[] args) {GraphQLSchema schema new GraphSchema().getSchema();String query1 {users(page:2,size:5,name:\john\) {id,sex,name,pic}};String query2 {user(id:6) {id,sex,name,pic}};String query3 {user(id:6) {id,sex,name,pic},users(page:2,size:5,name:\john\) {id,sex,name,pic}};MapString, Object result1 (MapString, Object) new GraphQL(schema).execute(query1).getData();MapString, Object result2 (MapString, Object) new GraphQL(schema).execute(query2).getData();MapString, Object result3 (MapString, Object) new GraphQL(schema).execute(query3).getData();// 查询用户列表System.out.println(result1);// 查询单个用户System.out.println(result2);// 单个用户、跟用户列表一起查System.out.println(result3);} 输出 {users[{id0, sex0, namejohn_2_0, picpic_0.jpg}, {id1, sex1, namejohn_2_1, picpic_1.jpg}, {id2, sex0, namejohn_2_2, picpic_2.jpg}, {id3, sex1, namejohn_2_3, picpic_3.jpg}, {id4, sex0, namejohn_2_4, picpic_4.jpg}]} {user{id6, sex0, nameName_6, picpic_6.jpg}} {user{id6, sex0, nameName_6, picpic_6.jpg}, users[{id0, sex0, namejohn_2_0, picpic_0.jpg}, {id1, sex1, namejohn_2_1, picpic_1.jpg}, {id2, sex0, namejohn_2_2, picpic_2.jpg}, {id3, sex1, namejohn_2_3, picpic_3.jpg}, {id4, sex0, namejohn_2_4, picpic_4.jpg}]} 6最后把main方法里面的代码放到web层只需要定义一个query参数很容易就把查询服务搭建好了dataFetcher 里面还是调用原来的查询接口 7引入maven依赖 dependencygroupIdcom.graphql-java/groupIdartifactIdgraphql-java/artifactIdversion2.0.0/version /dependency 关于graphql查询什么定义看看这个或许对你有帮助 json {id6, sex0, nameName_6, picpic_6.jpg } query {id,sex,name,pic } 后面那部分其实就是json字符串去掉和value的结果还是可读的 结语 graphql 带了一种全新的思维方式可以简化web api的开发由客户端指定需要什么数据服务端返回什么数据减少不必要的流量传输对移动端友好还提供多种数据聚合查询多个查询只是用一个请求既满足api最小粒度又满足前端需要减少请求提高性能。
http://www.eeditor.cn/news/120245/

相关文章:

  • 东莞市住房建设局网站首页做网站必备的注意事项
  • 电子商务网站怎么做乐陵是哪个省哪个市的
  • 为什么网站经常被攻击科学小制作小发明
  • 网站评测的作用做商城网站技术要点
  • 什么网站可以做平面设计赚钱网站的音乐链接怎么做
  • 世纪城网站建设北京知名企业100强
  • 酒店类的电影网站模板网站首页设计要求
  • 五金机械东莞网站建设网站视觉设计方案
  • 邦邻网站建设网站平台建设方案书
  • 怎么登陆建设工程网站建设工程交易中心网站
  • 惠州外贸网站建设公司做网站有什么注意事项
  • 中国站长网入口wordpress 滑动主题
  • 网站建设方案的需求分析免费logo设计生成器图片
  • 做网站行业怎么样社区门户网站规范化建设
  • 网站开发创业房地产信息网新楼盘
  • 做网站安全认证做淘宝的网站有哪些
  • 网站seo外包保定网站设计
  • 网站源码修复最新新闻热点事件2024摘抄
  • 驻马店做网站的公司建一个网站需要多少钱网站怎么做的
  • 株洲做网站建设商城系统源码
  • 可以用电脑做网站主机吗自学前端怎么学
  • 专业的魔站建站系统互联网企业推广
  • 成都建材网站建设个人养老保险缴费查询
  • 网站建设和维护人员职责网站诚信认证电话销售
  • 建站推荐网站电脑行业网站模板
  • 南阳网站推广效果怎样手机做网站教程
  • 企业建站系统模板宿州官方网站建设
  • 织梦招商加盟网站源码seo网站快速
  • php做网站登陆验证建网站语言
  • 涉县网站建设长春建网站一般多少钱