I recommend to create a single RestAPIVerticle and use a Router within that Verticle to setup your routes. You can however modularize your routes by creating classes and package routes for specific tasks together. But always use a dedicated Router/Routes for your RestAPIVerticle.

Sharing routes or handlers across multiple Verticles is a bad idea because it violates the thread safety model of Vert.x. Most handlers are not (and must not be) threadsafe and thus you could get into trouble when sharing routes or handlers between Verticles.

If you need to handle more requests you can easily deploy another instance of your Verticle.

I use the process described for Gentics Mesh which uses Vert.x to provide a REST API. I summarized the workflow here: https://getmesh.io/docs/beta/contributing.html#_big_picture

Sources are also on Github.

Another option is of course to generate your implementation from an REST specification (Contract driven design). I think there is an article on the Vert.x blog which describes this process.