Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign up建议收集箱 #37
建议收集箱 #37
Comments
|
@liliang8858 太赞了,非常感谢。加个QQ详聊吧 1184482681 |
|
建议: hot 数据预加载到 redis 解除DB层压力 |
|
@liliang8858 Redis缓存这个建议很好,不过由于业务的不确定性,我打算只在库里面缓存一些配置,其它的业务表数据由开发者自行决定更好 |
|
APIJSON JavaScript什么时候出支持react native的版本?谢谢,还有PHP的也需要。 |
|
@angelfreedomv 感谢建议。 PHP我不会哦,希望有热心的开发者做出来, C#版也已经可以用了, Python版也完成了基础设施搭建(作者zeromake的回复) 给热心的作者们点Star支持下吧^_^ |
|
@TommyLemon 谢谢作者,我的建议是建立一个qq群或者telegram群,接受反馈,不断完善项目。 |
|
@angelfreedomv |
|
20200308 更新,已完成。 {
"[]": {
"query": 2,
"User": {}
},
"total@": "/[]/total",
"info@": "/[]/info"
}返回的数据中,总数及分页详情结构为: "total":139, //总数
"info":{ //分页详情
"total":139, //总数
"count":5, //每页数量
"page":0, //当前页码
"max":27, //最大页码
"more":true, //是否还有更多
"first":true, //是否为首页
"last": false //是否为尾页
}具体见 功能符 > 数组关键词的 query,total 和 info 建议完善分页信息。 目前 总页数、是否有下一页 等分页信息可通过 total,count,page 得出, 见 通用文档 的 数组关键词 ③ 但是后端只需要牺牲非常小(可以忽略不计)的性能,就可以计算好这些信息返回给前端,例如 "[]": {
"query": 2,
"User": {}
},
"total@": "/[]/total"返回 "[]": [...],
"total": 100变为 "[]":{
"query":2,
"User":{}
},
"pagination@":"/[]/pagination"返回 "[]": [...],
"pagination": {
"total": 100,
"hasNextPage": true,
"isFirstPage": false,
"isLastPage": false
}点赞(右上角+表情)数超过10个就开发。 还有什么需要的信息大家可以补充下。 |
|
@angelfreedomv |
|
老大 啥时候把APIJSON和ZBlibrary整合一下,原Android端的一直没跟上ZBlibrary的进度啊。APIJSON-Android这样的前后一体的实在是太实用了,上手就等于项目完成一半了。希望老大抽空更新一下呗!!! |
|
全局关闭所有权限验证怎么设置 急需测试 未找到配置的地方 望指点 |
|
@Onesimu
顺便说下,这里只用来提交建议,提交问题请 New Issue |
|
谢谢, 确实很强大. 其实配置的问题也算一个小小的建议, 对于数据库连接 开启验证 开启日志这些最基本的配置最好能够放在配置文件里, 就像spring boot那样. 这样更符合生产环境的使用方式.
|
|
@Onesimu 感谢建议。 2.自定义业务建议优先使用 远程函数 来实现,其次是 重写相关方法 3.可以在 Log.java里的 DEBUG 统一配置是否开启输入 APIJSONORM 的日志 |
|
想請問一下,在 GraphQL 中,每個 Object(例如:User、Comment)都各自有一個來源的 Resolver。 這個 Resolver 裡面可以透過 TCP/gRPC/JSON-RPC 去和對應的資源微服務進行互動。
像上述 GraphQL 範例:Post 可以在 Resolver 中呼叫 Post 微服務、Comment 則呼叫 Comment 微服務以請求資源,以此類推。 APIJSON 看起來像是沒有 Resolver(以我從網路上收集到的認知),那麼要如何在這部份切分相關資源以符合微服務的相關呼叫措施呢? |
|
@YamiOdymel APIJSON 可以用 {
"Moment": {
"id": 301,
"isPraised()": "isContain(praiseUserIdList,userId)" //远程函数
}
}在后端实现远程函数,做你想要的呼叫 Post 微服务等。 2.重写 ObjectParser.onParse(String key, Object value) 提醒一下,这是建议收集的地方,有问题单独发 issue 哦 |
|
建议支持websocket, 便于实现数据实时同步和双向消息通知. 数据结构最好和具体传输方式解耦. 这样即使要用在socket传输或者将来的HTTP2/3 等各种场合都能适应. 建议作者评估一下, 做成通用数据接口, 或者给出思路和demo, 让社区去贡献具体传输方式实现. |
|
@Onesimu 感谢建议,这样是可以的。 |
|
20190401 更新:已完成 增强 LEFT JOIN / RIGHT JOIN "join": "</Comment/userId@"这种 LEFT JOIN LEFT JOIN (SELECT content FROM Comment) AS Comment ON Comment.userId = User.id外层的 SELECT Comment.content ,即返回副表 Comment 的字段 必须 与 内层的一致, "join": {
"</Comment/userId@": { //指定子查询外层的各种属性
"@column": "momentId,content",
"@order": "date-",
"@group": "momentId",
"@having": "momentId>100"
}
} |
比较重要的一个问题
好的地方
待完善的地方
不破不立 |
|
@hegphegp 感谢建议。 好的地方说得挺到位的,不过还有节约流量等别的好处哦 待完善的地方1.小白太多了,连导入工程、导入表等基础操作都希望有视频教程,我也很无奈,现有的教程还是保留吧。 再次感谢你的建议。 |
|
1.建议结合python、c#版的文档对现有文档进行简化拆解,将apijson规范和apijson-java实现的部分区分开来,比如apijson规范的说明,apijson-java入门、apijson测试网站及工具介绍和使用教程、apijson-c#入门、apijson-java仿朋友圈教程等等 |
|
@wanghaisheng 感谢建议,目前 APIJSON 主项目(设计规范+Java版实现)的文档是已经简化拆解过的, |
|
@TommyLemon 你可以稍微看一下c#和python 写的比java简明易懂多了 当然你可能还是会觉得现在的已经kangpick了 |
|
@wanghaisheng “写的比java简明易懂多了” 是指文档还是代码呢? 如果说的是代码更简洁,主要原因是它们相对 Java 版来说功能还不够全(JOIN,子查询等), 另外 kangpick 是啥意思? |
|
apijson 目前的文档分为几大类 虽大多数可能内容都有一些,就我来看,组织上是非常混乱的,可以调整的更好,更易于上手和传播 @TommyLemon |
|
@hegphegp 非常感谢,已经在原来的基础上又实现了 AbstractParser.java |
|
@wanghaisheng 不好意思啊,这么久没回。 |
|
@TommyLemon 我觉得你理解岔了 我是说你提供一些信息,我/社区可以帮助把不足的不够详细的都补充起来。但一些思路性的原理性的我是补不出来的 能力不够 |
|
@wanghaisheng 这样啊,非常感谢,请问需要提供哪些信息呢? |
|
@TommyLemon 你现在这个项目里其实包含了两部分 一部分是spec的 一部分是java实现的 |
|
@wanghaisheng 是的,主项目包含 设计规范(Specification) 和 Java实现(APIJSONORM),还有 目前 Java 版的配置有 具体和 APIJSONAuto 文档怎么对应的见 这个 Issue 以及内部关联的 另一个 Issue。 具体使用除了原有的 配置和部署文档,还有群友贡献的 详细的图文说明文档。 其它的后面再说吧,希望有热心的用户发 Pull Request 贡献下。 |
|
关于请求限制,可以自动把所有 预发布环境 的请求 Hash 或 MD5 后再保存下来, 至于实现, 预发布环境下 保存到数据库,线上环境读数据再对比,需要一个环境的标识,后端控制, |
|
建议加一些性能分析关键词 cache, explain 等 {
"[]": {
"page": 0,
"count": 50,
"join": "@/User/id@",
"cache": false, //设置 SQL_NO_CACHE,解决调试时缓存影响执行时间
"explain": true, //返回执行计划,而不是数据? 那就 query: 3 / query: "explain" 替代 ?
"Moment": {
"content$": "%a%"
},
"User": {
"id@": "/Moment/userId",
"@column": "id,name,head"
}
}
}更新:已实现 @Explain: true/false 和 @cache: "ALL"/"ROM"/"RAM",例如 {
"@explain": true,
"@cache": "RAM", //0-"ALL", 1-"ROM", 2-"RAM"
"User": {
"@column": "id,name"
},
"[]": {
"Comment": {
"userId@": "User/id"
}
}
} |
|
@wanghaisheng APIJSONParser (基本说明 + JOIN 的写法 + 黑白名单 + 表权限、字段权限 等) APIJSON C# 版 APIJSON.NET (基本说明 + 额外提供的另一种 远程函数 写法等) |
|
希望实现SQL中的 distinct 关键字的功能。 |
|
有个热心的 APIJSON 用户贡献了 apijson-doc 项目,并且部署到 GitHub 服务器了 点 |
|
@xiehuiSheldon 感谢建议,已支持去重关键词 DISTINCT {
"[]": {
"Comment": {
"@column": "DISTINCT momentId;count(DISTINCT userId)",
"@group": "momentId"
}
},
"@explain": true
} |
|
使用过程中看到控制台打印的日志都是红色的,建议加一个日志插件,使用日志插件打印日志,也能直接定位打印位置,也更灵活 |
|
@rxxy 感谢建议 |
|
@angelfreedomv 另一个 APIJSON Node 版本也出来了, 点 Star 鼓励作者继续完善吧 ^_^ |
|
建议新增 WITH AS 语法,提高某些情况下的 SQL 的性能和可读性。 {
"sql@": {
"with": true, //表示这个子查询使用 WITH AS
"from": "User",
"User": {
"sex": 1
}
}
}自动生成 WITH sql AS (SELECT * FROM User WHERE sex=1) |
|
目前只有 User.id = Comment.userId 这种等价的 JOIN ON 关联方式,并且只有这个才能加到 ON 上。 {
"[]": {
"join": {
"&/User/id~@": { //Comment INNER JOIN User ON User.id ~ Comment.userId, 其它 $, {}, <> 等同理
"@combine": "&sex,&name~" //表示 这两个条件加到 ON 上 ON ... AND (sex=1 AND name ~ 'a')
}
},
"Comment": {
"content$": "o"
},
"User": {
"id~@": "/Comment/userId",
"sex":1,
"name~":"a"
}
},
"@explain": true
} |
|
@hegphegp 感谢建议,APIJSON ORM 已支持 Maven, Gradle 等远程依赖方式,具体见 |
|
202000302 更新:已实现 @zhoulingfengofcd 感谢建议 这个需求大家反复提及,会优先实现(预计下个版本) |
|
感谢建议:增加递归查询(recursive) |
|
@TommyLemon 首先向大佬致敬,apijson协议设计得非常优雅,让我爱不释手。 因此希望大佬可以将apijson库中自带的“圈子”,登录校验(authentication)、权限校验(authorization)等功能进行代码级别的解耦,由您定义认证鉴权接口,并提供更全面的上下文信息,让用户自行提供认证、鉴权实现。让jsonapi用户可以轻松实现如下图层次分明架构: |





有什么功能建议可以在这里回复,点赞数高的回复将会被加入开发计划