-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: