Skip to content

楼主这个和prisma有什么不同,两个都不了解,求比较一下 #29

Closed

Description

@zwl1619

楼主这个和prisma有什么不同,两个都不了解,求比较一下:

https://github.com/prismagraphql/prisma

Activity

  1. TommyLemon commented on Jun 6, 2018

    @TommyLemon
    Member

    Prisma是一个ORM库,用于实现SQL语句的封装。
    需要后端针对每个需求都写封装SQL语句的代码哦
    https://github.com/prismagraphql/prisma/blob/master/examples/application-server/generated-schema.graphql
    查询:

    type Query {
      posts(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [Post]!
      users(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): [User]!
      post(where: PostWhereUniqueInput!): Post
      user(where: UserWhereUniqueInput!): User
      postsConnection(where: PostWhereInput, orderBy: PostOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): PostConnection!
      usersConnection(where: UserWhereInput, orderBy: UserOrderByInput, skip: Int, after: String, before: String, first: Int, last: Int): UserConnection!
    
      """Fetches an object given its ID"""
      node(
        """The ID of an object"""
        id: ID!
      ): Node
    }

    增删改:

    type Mutation {
      createPost(data: PostCreateInput!): Post!
      createUser(data: UserCreateInput!): User!
      updatePost(data: PostUpdateInput!, where: PostWhereUniqueInput!): Post
      updateUser(data: UserUpdateInput!, where: UserWhereUniqueInput!): User
      deletePost(where: PostWhereUniqueInput!): Post
      deleteUser(where: UserWhereUniqueInput!): User
      upsertPost(where: PostWhereUniqueInput!, create: PostCreateInput!, update: PostUpdateInput!): Post!
      upsertUser(where: UserWhereUniqueInput!, create: UserCreateInput!, update: UserUpdateInput!): User!
      updateManyPosts(data: PostUpdateInput!, where: PostWhereInput): BatchPayload!
      updateManyUsers(data: UserUpdateInput!, where: UserWhereInput): BatchPayload!
      deleteManyPosts(where: PostWhereInput): BatchPayload!
      deleteManyUsers(where: UserWhereInput): BatchPayload!
    }

    更新:
    以上链接已失效,官方迁移了 examples,可以参考
    https://github.com/prisma/prisma-examples/blob/master/node/docker-mysql/src/script.js
    https://github.com/prisma/prisma-examples/blob/master/node/docker-mysql/src/generated/prisma-client/prisma-schema.js

    而APIJSON是完全自动化生成SQL语句的,后端不需要写相关代码。
    前端按照 设计规范 来请求,后端会完全自动解析成SQL语句去连接数据库执行,并返回和Request JSON结构完全对应的Response JSON
    这是APISJONAuto接口在线工具,文档上给出的表和字段随便试,任何结构任何数据都支持。
    http://apijson.org/auto

  2. TommyLemon commented on Sep 15, 2019

    @TommyLemon
    Member

    @zwl1619 APIJSON Node 版本也出来了,语言一样,你可以具体对比下。
    目前在初期阶段,用了 TypeORM,所以需要写 Model 类(Java 版不需要)。

    apijson-node 支持单表、关联、数组、分页查询等,有比较完善的文档,
    我测试过,除了项目提供的表有 utf8 编码问题导入不了 (用我自己的表测试可以),其它都可用。
    作者是微医的,已经写了不少测试用例,在他公司内部用起来了。

    点 Star 鼓励作者继续完善吧 ^_^
    https://github.com/kevinaskin/apijson-node

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions