zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java基础回顾---JVM&JDK&JRE
    学习
    学习
    学习
    进度
    进度
    毕设进度
    学习进度
    Beta阶段项目总结
    第二阶段冲刺——seven
  • 原文地址:https://www.cnblogs.com/rongfengliang/p/9575786.html
Copyright © 2011-2022 走看看