gpt4 book ai didi

ruby-on-rails - 在 Grape/Rack::Mount::Route 中访问已编译的路由

转载 作者:行者123 更新时间:2023-12-04 03:40:30 24 4
gpt4 key购买 nike

我正在尝试生成由我的 Grape::API (MyApi) 子类生成的所有路由的列表。

我可以通过打电话来接近:

MyApi.send(:route_set).instance_variable_get(:@routes)

这给了我一个 Rack::Mount::Route 对象数组。

Route 对象唯一有用的属性是 :conditions ,它返回这样的哈希:
 :path_info => (?-mix:\\A\\/api\\/(?<version>v1)\\/token(?:\\.(?<format>[^\\/]+))?\\Z)", "k: request_method, v: (?-mix:\\AGET\\Z)

如您所见,哈希值是一个用于匹配路由路径的正则表达式。我还可以使用 :named_captures 从正则表达式中获取所有命名的捕获:
{:path_info=>{:version=>0, :format=>1}, :request_method=>{}}

最终我想要做的是生成通过 Grape::API 创建的所有路由、它们的完整路径等的列表。尝试在条件中解构正则表达式对我来说没有意义。是否有另一种方法可以访问/生成 Rack::Mount::Route 的人类可读路径?

最佳答案

看到这个帖子 rake routes with grape

基本上你可以通过以下方式获得路线:

MyApi.routes

更新:

英文文章: rake routes command on grape gem

关于ruby-on-rails - 在 Grape/Rack::Mount::Route 中访问已编译的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com