Rails 做 API 的话使用 Friendly id,如何体现出来

QueXuQ · 2015年08月13日 · 最后由 QueXuQ 回复于 2015年08月18日 · 1767 次阅读

如果不是做 API 服务的话,Friendly id还是好使的。可是如果是做 API 的话,似乎会有点问题啊。如接口传过来的 JSON:

api/products/uoi38903huio1

products: {
  id: 10,
  slug: 'uoi38903huio1',
  name: '避孕套',
  order_id: 3
}

这样的情况,不就还是把product的 id 和order的 id 都暴露了。好吧,你可能这里会说,其实不需要把product的 id 返回来啊,因为我这里有一个这样的情况:

product has_many :product_prices,所以我创建product_price时,需要这样的JSON

api/product_prices

product_prices: {
  price: 110,
  product_id: 10
}

因为在创建时,我需要用到product id,如果传过去的是product slug,会变得很复杂,首先找到这个product,然后在把 id 赋值进去product price中。或者如果他们的关联直接是product slug的或会更方便些,这样就需要把主键改成slug?我去看了 http://fengche.co/ 的,他们确实是传一个随机串过来的,没有看到有 id 的情况,不知道一般都怎么处理会比较好呢?

给 id 编码,然后再在 api 那一端解码

#1 楼 @flemon Thanks,这个方法也不错。

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