require "sinatra/base" class UserRoute < Sinatra::Base get('/:id') do "user #{params[:id]}" end end class ContentRoute < Sinatra::Base get('/:id') do "contents #{params[:id]}" end end class UserRouteV2 < Sinatra::Base get('/:id') do "USER #{params[:id]}" end end class ContentRouteV2 < Sinatra::Base get('/:id') do "CONTENTS #{params[:id]}" end end map('/v1') do map('/users') { run UserRoute } map('
![Sinatraでルーティングをモジュール化する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/25ca0589bce36d743dcdb1c9fd948cfa887c1309/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fogp-background-1150d8b18a7c15795b701a55ae908f94.png%3Fixlib%3Drb-1.2.2%26w%3D1200%26mark%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D380%2526txt%253DSinatra%2525E3%252581%2525A7%2525E3%252583%2525AB%2525E3%252583%2525BC%2525E3%252583%252586%2525E3%252582%2525A3%2525E3%252583%2525B3%2525E3%252582%2525B0%2525E3%252582%252592%2525E3%252583%2525A2%2525E3%252582%2525B8%2525E3%252583%2525A5%2525E3%252583%2525BC%2525E3%252583%2525AB%2525E5%25258C%252596%2525E3%252581%252599%2525E3%252582%25258B%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D54%2526txt-clip%253Dellipsis%2526txt-align%253Dcenter%25252Cmiddle%2526s%253D135984b508dcef4d1b00745aa25d1c78%26mark-align%3Dcenter%252Cmiddle%26blend%3Dhttps%253A%252F%252Fqiita-user-contents.imgix.net%252F~text%253Fixlib%253Drb-1.2.2%2526w%253D840%2526h%253D500%2526txt%253D%252540abey1192%2526txt-color%253D%252523333%2526txt-font%253DAvenir-Black%2526txt-size%253D45%2526txt-align%253Dright%25252Cbottom%2526s%253D49a54ee50f4edf305743f28c74f936f6%26blend-align%3Dcenter%252Cmiddle%26blend-mode%3Dnormal%26s%3D4ce6e33e7f8b2596c693109e35d32175)