如何通过 Grape API 获取路线
How to get routes by Grape API
我使用 gem,葡萄用于 api。
我试图通过命令 rake grape:routes
获取 api url
namespace :grape do
desc "routes"
task :routes => :environment do
API::Root.routes.map { |route| puts "#{route} \n" }
end
end
但我通过了 rake grape:routes
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
...
我想要这样的东西。
version=v1, method=GET, path=/services(.:format)
version=v1, method=GET, path=/services/:id(.:format)
...
我的葡萄实现如下。这很好用。
module API
class Root < Grape::API
version 'v1', using: :path
format :json
helpers Devise::Controllers::Helpers
mount API::Admin::Services
end
end
module API
class Services < Grape::API
resources :services do
resource ':service_id' do
...
end
end
end
end
尝试将以下内容添加到您的 Rakefile 中,如 proposal
中所述
desc "Print out routes"
task :routes => :environment do
API::Root.routes.each do |route|
info = route.instance_variable_get :@options
description = "%-40s..." % info[:description][0..39]
method = "%-7s" % info[:method]
puts "#{description} #{method}#{info[:path]}"
end
end
或
尝试下面提到的 here
desc "API Routes"
task :routes do
API::Root.routes.each do |api|
method = api.request_method.ljust(10)
path = api.path
puts "#{method} #{path}"
end
end
和运行rake routes
还有几个 gems(grape_on_rails_routes & grape-raketasks) 是为此目的而构建的。您可能有兴趣看看它们。
我使用 gem,葡萄用于 api。
我试图通过命令 rake grape:routes
namespace :grape do
desc "routes"
task :routes => :environment do
API::Root.routes.map { |route| puts "#{route} \n" }
end
end
但我通过了 rake grape:routes
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
#<Grape::Router::Route:0x007f9040d13878>
...
我想要这样的东西。
version=v1, method=GET, path=/services(.:format)
version=v1, method=GET, path=/services/:id(.:format)
...
我的葡萄实现如下。这很好用。
module API
class Root < Grape::API
version 'v1', using: :path
format :json
helpers Devise::Controllers::Helpers
mount API::Admin::Services
end
end
module API
class Services < Grape::API
resources :services do
resource ':service_id' do
...
end
end
end
end
尝试将以下内容添加到您的 Rakefile 中,如 proposal
中所述desc "Print out routes"
task :routes => :environment do
API::Root.routes.each do |route|
info = route.instance_variable_get :@options
description = "%-40s..." % info[:description][0..39]
method = "%-7s" % info[:method]
puts "#{description} #{method}#{info[:path]}"
end
end
或
尝试下面提到的 here
desc "API Routes"
task :routes do
API::Root.routes.each do |api|
method = api.request_method.ljust(10)
path = api.path
puts "#{method} #{path}"
end
end
和运行rake routes
还有几个 gems(grape_on_rails_routes & grape-raketasks) 是为此目的而构建的。您可能有兴趣看看它们。