-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
和GraphQL差不多? #2
Comments
@zhoujinliang 但出发点和侧重点不一样: 具体对比下APIJSON Android版和graphal-java的使用,你会发现graphal-java使用非常麻烦,请求必须用它封装的GraphQL#execute方法,很不灵活;appollo-android必须用ApolloClient#newCall,使用同样很麻烦。而APIJSON对请求方式无限制,只要将请求JSON传到服务端就行,返回的也是结构严格对应的JSON。 APIJSON也有JavaScript版,使用超级简单,几乎就是写JSON,只有少数特殊字符需要encodeURIComponent。你也可以用APIJSON-JS和graphql-js对比。 |
最近在深入了解GraphQL,看了graphql-js源码以及很多博客,graphql并没有减少服务端代码,反而是要写一大堆schema,客户端才能根据schema对应的查询结构来请求,不知道我理解得对不对。 另外我按照官方test示例写了查询请求,发现WebStorm并不能将它自动格式化,缩进要手写。APIJSON-JS版请求用的是JSON,可以ctrl+i自动格式化。 |
GraphQL只是半自动化,APIJSON是完全自动化 |
不知道大神有没有看过 |
@wanghaisheng 写起来确实简洁些,像OData,但看不出返回的JSON结构啊,语法也不够直观,后端还要写一大堆接口 gte,lte,neq,... Horizontal Filtering (Rows):
APIJSON:
Ordering:
APIJSON:
还有它怎么定制表关联呢? |
2.后端还要写一大堆接口 和你现在一样的啊 前端直接调APIJSON的get post 这个也是前端直接调
|
@wanghaisheng 2.完全不一样哦 3.不是这样的,我说的是这种自定义关联方式
2)查询一个用户User及TA发布的动态Moment数组
3)查询一个动态Moment及动态下的评论Comment和评论者User
注:MySQL中应该user_id,moment_id这种用小写+下划线的命名方式,这里因为APIJSON demo数据库字段命名采用了驼峰方式,为了能让你放到APIJSON在线测试网页直接测试,所以还是用了驼峰方式 APIJSON在线测试: |
@TommyLemon 我试一下吧 |
@wanghaisheng 1.角色权限 APIJSON通过 @ MethodAccess 注解Model来添加角色对表的操作权限: 使用默认角色权限:
使用部分定制角色权限:
另外 前端/客户端 可以在请求 JSON的最外层(统一) 或 里面的表内(单独) 设置 "@ role":ROLE_NAME,来标识来访用户的身份。 字段权限原来在Parser#parserResponse用Response表处理,但性能很差就注释了。
3.目前demo确实只有MySQL的,通过SQLConfig和SQLExecutor对接MySQL数据库。 |
@ key 中间多加了空格,因为在issue里不加上空格就是@ 别人,@ role 被自动大写为 @ ROLE 了😂 |
@wanghaisheng 看看这个,自动生成markdown文档,可展开/收起的带高亮格式化JSON,嘿嘿 |
用apijson与graphql直接对比, 其实不太合适. 应该对比 apollo client 或 postgraphql 或 prisma 简单看了apijson文档: 本质区别:apijson更面向数据库表, 而graphql抽象层面更高(偏面向对象, 后端resolver甚至可以结合 DDD) 问题域:apijson: 貌似核心是解决嵌套数据查询需求 语法层面:不得不说, graphql有较高的学习成本. 相比而言, apijson比graphql简单得多 前端友好度:apijson并未提供前端方案, 完全可以使用mobx / rematch 之类的方案, 适应性广 灵活度apijson面向表, 在满足自动化的基础上, 显然灵活度可以做到更高. 赞 apijson! (顺便吐槽一下grapqhl: 前段时间一个网站项目用到graphql, 一些问题其实非常纠结, 象fragment无法删除只能不断增加, 象"price|{}":">300,<1200" 这样的查询 如何定义查询格式. 另外graphql后端其实很简单, 增删改插, 写顺了ctrl+cv. 前端却需要熟悉一堆概念, 尤其问题集在中缓存管理上, 同事不太熟悉缓存, 导致缓存更新上经常遇到问题. ) |
@g770728y 赞,理解基本都对。 [], User[], User-id[], @position 等非 Java/JavaScript 合法变量名的字段, 也可以通过请求参数JSON最外层传 即便不用 format,APIJSONORM 里的 JSONResponse.format 也会自动格式化名称。 GraphQL 核心可以说是一个 Gateway 了, APIJSON 核心是 JSON->SQL 的 ORM 库,可以结合使用 |
一个突出的是api的聚合 一个突出的是表结构的聚合 |
@wanghaisheng 一针见血哈哈 |
parse-server 支持mongodb, apijson 会支持mongo不? |
|
APIJSON 是软件开发行业的 ATM 机,业务员不用做简单常规业务,可以专注于复杂特殊业务(后端开发不用自己做 CRUD,只处理业务逻辑)、用户操作 ATM 机自助存取款转账等大部分常规需求(前端开发传 JSON 参数自助存取各种关联组合嵌套的 JSON 数据); APIJSON 在 功能、安全、性能、易用性、Java 版生态(继承 JSON 的相关生态) 等都大幅领先 GraphQL。 |
@piboye apijson-mongodb,NoSQL 数据库 MongoDB 的 APIJSON 插件 |
No description provided.
The text was updated successfully, but these errors were encountered: