4

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

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

link :self do
  article_url(self)
end

但是 Grape 本身并不提供对路由的轻松访问,因为它们没有类似于article_url.

有人遇到过 Grape 或 Sinatra 的类似问题吗?有没有一种干净简单的方法来暴露资源链接?

4

1 回答 1

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.
于 2014-08-03T17:21:16.883 回答