【问题标题】:Implementing hypermedia-driven API with Grape (or Sinatra)使用 Grape(或 Sinatra)实现超媒体驱动的 API
【发布时间】:2012-10-14 13:07:10
【问题描述】:

我正在尝试使用直接安装在 Rack 顶部的 Grape 来实现超媒体驱动的 API。 Grape 支持演示者(“实体”) 似乎是提供所有相关超媒体的合适场所。

如果我有 Rails 路由器可用,我可以简单地通过它的耳朵挑选路线并将其扔进我的演示者逻辑中。例如(ROAR 方法):

link :self do
  article_url(self)
end

但 Grape 本身并不提供对路由的轻松访问,因为它们没有类似于 article_url 的名称或别名。

有人遇到过 Grape 或 Sinatra 的类似问题吗?有没有一种简洁明了的资源链接公开方式?

【问题讨论】:

  • 我也在研究最好的方法来做到这一点,但不要认为葡萄是可能的。你可以结合webmachine & roar,比如this
  • 我认为这是对 Grape 的一个有价值的功能请求。随意打开一个问题并详细说明 - 我们可以添加一组这样的路由助手。

标签: ruby-on-rails api sinatra hypermedia grape-api


【解决方案1】:

这是可能的,但不像 Rails url 助手那么简单。

来自https://github.com/intridea/grape#describing-and-inspecting-an-api

TwitterAPI::versions # yields [ 'v1', 'v2' ]
TwitterAPI::routes # yields an array of Grape::Route objects
TwitterAPI::routes[0].route_version # yields 'v1'
TwitterAPI::routes[0].route_description # etc.

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 2014-02-05
    • 2011-10-13
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 2015-11-06
    • 2012-07-23
    • 1970-01-01
    相关资源
    最近更新 更多