新手问题 API 编写显示问题

bajiudongfeng · 发布于 2015年1月28日 · 最后由 bajiudongfeng 回复于 2015年2月06日 · 944 次阅读
14935

本人现在用grape,jbuilder编写api,现在遇到了一个问题. 如下: 现在有两个数据集合a 和 b,前台显示是要4个a的元素,1个b的元素这样的.a和b元素的字段也都不相同. 也就是说返回的json数据应该是四个a中元素,一个b中元素这样的. 求解.....

共收到 9 条回复
709

返回json

{
a: [1, 2, 3, 4],
b: [1]
}

a: [1,2,3,4],
b: 1

这样的模式是很容易的啊. 看一下ruby-china源码地api是怎么写的就可以了啊.

14935

@suffering 能给个具体的例子吗?

14935

@suffering 没有找到和我的问题类似的呀,谢谢啦.

709

呃, 你说说你的表名与字段名, 以及你要返回的JSON模式.

14935

就是和你给出的结构一样,json中的每条数据都是你给出的那个结构,不知道该怎么拼成那样的结构啊.

14935

@suffering 就是和你给出的结构一样,json中的每条数据都是你给出的那个结构,不知道该怎么拼成那样的结构啊.

709

这里作两个预设: 第一, 你的api的routes, 比如说是 http://yourdomain.com/api/ts/xxx.json 的模式会返回那个json格式. 第二, a是表ps的字段, 名为a; b为表ms的字段. 而后你的grape api应该是这样写的.

class Ps < Grape::Entity
    expose :id, :fileda
end
class Ms < Grape::Entity
   expose :id, :filedb
end
resources :ts
     get ":xxx" do
         @ps_4 = Ps.all.limit(4).collect(&:a)
         @ms_1 = Ms.first.b
         {
            a: @ps_4,
            b:  [@ms_1]
         }
     end
end

grape 是可以直接返回原生内容的. 也即是最后返回的内容, 会转换成json数据. 最后这一行, 就和要返回的json数据结构一样.

14935

@suffering谢谢您的指导.问题已经解决.再次标示感谢.

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册