2017-06-20 5 views
1

J'utilise gem, raisin pour api. J'ai essayé de urls api par la commande rake grape:routesComment obtenir des itinéraires par Grape API

namespace :grape do 
     desc "routes" 
     task :routes => :environment do 
     API::Root.routes.map { |route| puts "#{route} \n" } 
     end 
    end 

mais je suis par rake grape:routes

#<Grape::Router::Route:0x007f9040d13878> 
    #<Grape::Router::Route:0x007f9040d13878> 
    #<Grape::Router::Route:0x007f9040d13878> 
    #<Grape::Router::Route:0x007f9040d13878> 
    ... 

Je veux quelque chose comme ça.

version=v1, method=GET, path=/services(.:format) 
    version=v1, method=GET, path=/services/:id(.:format) 
    ... 

Ma mise en œuvre de raisins est ci-dessous. Cela fonctionne bien.

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 

Répondre

4

Essayez d'ajouter le ci-dessous pour votre Rakefile comme indiqué dans ce 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 

Ou

Essayez le ci-dessous comme mentionné here

desc "API Routes" 
task :routes do 
    API::Root.routes.each do |api| 
    method = api.route_method.ljust(10) 
    path = api.route_path 
    puts "#{method} #{path}" 
    end 
end 

Et courir rake routes

Il y a aussi quelques pierres précieuses (grape_on_rails_routes & grape-raketasks) qui sont construits à cet effet. Vous pourriez être intéressé de les voir.

+0

Merci. Ça marche bien! –