vulcanjs schemas&& collections
一张参考图

说明
从上图我们可以方便的看出schmea 能做的事情
- Generate a GraphQL equivalent of your schema to control your GraphQL API.(生成 graphql api)
- Control permissions for accessing and modifying data.(访问控制)
- Generate forms on the client.(client 以及表单生成)
- Validate form contents on submission.(数据校验)
- Auto-generate paginated, searchable datatables.(自动生成分页,查询)
- Auto-generate smart cards for displaying individual documents.(智能卡生成)
- Add callbacks on document insert or edit.(数据添加,编辑时候的回掉)
参考例子
- schema
类似graphql-yogo 以及graphql-js 的schema 定义
const schema = {
// default properties
_id: {
type: String,
optional: true,
canRead: ["guests"]
},
createdAt: {
type: Date,
optional: true,
canRead: ["guests"],
onCreate: ({ newDocument, currentUser }) => {
return new Date();
}
},
userId: {
type: String,
optional: true,
canRead: ["guests"],
resolveAs: {
fieldName: "user",
type: "User",
resolver: (movie, args, context) => {
return context.Users.findOne(
{ _id: movie.userId },
{
fields: context.Users.getViewableFields(
context.currentUser,
context.Users
)
}
);
},
addOriginalField: true
}
},
// custom properties
name: {
label: "Name",
type: String,
optional: true,
canRead: ["guests"],
canCreate: ["members"],
canUpdate: ["members"]
},
year: {
label: "Year",
type: String,
optional: true,
canRead: ["guests"],
canCreate: ["members"],
canUpdate: ["members"]
},
review: {
label: "Review",
type: String,
optional: true,
control: "textarea",
canRead: ["guests"],
canCreate: ["members"],
canUpdate: ["members"]
}
};
- 创建collection
实际上上就是graphql api schema 定义以及解析处理
const Movies = createCollection({
typeName: "Movie",
schema,
resolvers,
mutations
});
参考资料
http://docs.vulcanjs.org/schemas.html
vulcanjs schemas&& collections的更多相关文章
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 计算机程序的思维逻辑 (54) - 剖析Collections - 设计模式
上节我们提到,类Collections中大概有两类功能,第一类是对容器接口对象进行操作,第二类是返回一个容器接口对象,上节我们介绍了第一类,本节我们介绍第二类. 第二类方法大概可以分为两组: 接受其他 ...
- 2DToolkit官方文档中文版打地鼠教程(三):Sprite Collections 精灵集合
这是2DToolkit官方文档中 Whack a Mole 打地鼠教程的译文,为了减少文中过多重复操作的翻译,以及一些无必要的句子,这里我假设你有Unity的基础知识(例如了解如何新建Sprite等) ...
- 计算机程序的思维逻辑 (53) - 剖析Collections - 算法
之前几节介绍了各种具体容器类和抽象容器类,上节我们提到,Java中有一个类Collections,提供了很多针对容器接口的通用功能,这些功能都是以静态方法的方式提供的. 都有哪些功能呢?大概可以分为两 ...
- Collection和Collections的区别?
Collection 是接口(Interface),是集合类的上层接口. Collections是类(Class),集合操作的工具类,服务于Collection框架.它是一个算法类,提供一系列静态方法 ...
- Collections.shuffle
1.Collections.shuffler 最近有个需求是生成十万级至百万级的所有随机数,最简单的思路是一个个生成,生成新的时候排重,但是这样时间复杂度是o(n^2),网上看了几个博客的解决方法都不 ...
- 集合工具类:collections
collection与collections的关系? public class Collectionsextends Object collection与collections没有直接的关系,但是与集 ...
- Map集合及与Collection的区别、HashMap和HashTable的区别、Collections、
特点:将键映射到值的对象,一个映射不能包含重复的键,每个键最多只能映射到一个值. Map集合和Collection集合的区别 Map集合:成对出现 (情侣) ...
随机推荐
- Android程序员眼中世界上最遥远的距离
世界上最遥远的距离,是我在if里你在else里,似乎一直相伴又永远分离: 世界上最痴心的等待,是我当case你是switch,或许永远都选不上自己: 世界上最真情的相依,是你在try我在catch. ...
- Confluence 6 使用 LDAP 授权连接一个内部目录 - 高级设置
ted Groups 为嵌套组启用或禁用支持. 一些目录服务器能够允许你在一个组中定义另外一个组.在这种结构下的用户组称为用户组嵌套.嵌套组的配置能够让子用户组继承上级用户组的权限,是系统的权限配置变 ...
- 『cs231n』无监督学习
经典无监督学习 聚类 K均值 PCA主成分分析 等 深度学习下的无监督学习 自编码器 传统的基于特征学习的自编码器 变种的生成式自编码器 Gen网络(对抗式生成网络) 传统自编码器 原理 类似于一个自 ...
- HDU-4848 Wow! Such Conquering! (回溯+剪枝)
Problem Description There are n Doge Planets in the Doge Space. The conqueror of Doge Space is Super ...
- spring PROPAGATION
PROPAGATION_REQUIRED Support a current transaction; create a new one if none exists. 支持一个当前事务;如果不存在 ...
- iOS-UI篇—简单的浏览器查看程序和Tomcat简单实现
#import "ViewController.h" @interface ViewController () @property (retain, nonatomic) NSAr ...
- 浅析postgresql数据库事务及行锁特征
开源数据库领域,postgresql以其优越的性能.功能及良好的稳定性排名首位可谓当之无愧,尤其是对高并发的支持可谓匠心独具.而优越的性能和稳定性,究其根本无非是良好的基础架构,本文将对其性能和稳定性 ...
- snagit12个人爱好
- python3.6 连接mysql数据库
==================pymysql=================== 由于 MySQLdb 模块还不支持 Python3.x,所以 Python3.x 如果想连接MySQL需要安装 ...
- 什么是REST API?
REST指一组架构约束条件和原则,满足约束条件和原则的应用程序设计.架构,软件体系结构分为三部分:构建,用于描述计算机:连接器,用于描述构建的链接部分:配置将构建和连接器组成有机整体.web基本技术: ...