# runjson **Repository Path**: knowgo/runjson ## Basic Information - **Project Name**: runjson - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-02 - **Last Updated**: 2022-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

# Run JSON Let json object Running # Why ? 从 Restful 转战 graphql,为了方便开发,特意封装了 graphql-go 包 goql,使用反射组装参数,提供额外的功能, 从开发上来说,感觉 graphql 确实比 Restful 有一些优势,比如一次请求可以调用多个 API 接口。
再比如 graphql 宣传的,按需反馈、明确类型等等。
刚开始接触时觉得挺不错,在使用过程中渐渐发现这些在开发过程中有些累赘,有些限制使得前后台都必须跟着调整才能适应,比如:
一个 API 提供树状结构数据,使用 graphql 时,客户端必须明确指出要几层数据,这确实有些过分。
其它问题不在一一罗列
有鉴于此,决心做一套可以运行 json 的包,借鉴了 graphql 比较好的思想,比如一次请求多个接口。目标是让开发变得更简单。 # 目标
  1. 让客户端开发简单易上手
  2. 让服务端开发简单易上手
  3. 目前使用 golang 实现一套服务端 runjson 包
# 规则
  1. 输入 json 格式数据
    1. 最外层是数组
    2. 数组的每一项对应一个 API 调用
    3. 每一项的内容必须包含 service 项,可选包含 arg 项
    4. service 项指明 API 接口名称
    5. arg 项指明 API 接口所需参数
  2. 输出 json 格式数据
    1. 输出内容由 API 的实现决定,客户端只是获取数据
    2. 输出的最外层是 dict 对象
    3. dict 对象的 key 是 API 名称
    4. dict 对象的 key 对应的 Value,是 API 执行的结果
    5. Value 是数组形式,如果同一个 API 在一起请求中,被调用 n 次,那么这个数据就有 n 维
    6. Value 数组中下标顺序,对应请求中 API 的顺序
  3. 提供 API 说明信息,包含 API 名称、参数说明、参数数据类型等内容
# 拓展 该包实现了 RunJSON 必要的核心功能,要用它做开发,请转到 rjhttp,这是一个以 Run JSON 包为核心的 http 形式的服务接口包,使用它可以非常便捷的开发 API,并可以实时查看 API 文档。