How to index dynamic pages/pages with dynamic content properly?

I have a landing page that has different variations like www.pigments.io/print-shops/cityname. I basically grab the param from the URL and insert it in my page like “Find print shops from cityname” and return items in my database from that city. Now this is essentially just one route, that fills in certain content like the city name for SEO purposes.

How do I have this indexed properly by Google though? It is just one route that has conditional content/meta tags based on the route/url. How can I have this index properly, so that I have three pages indexed on google for example:

www.pigments.io/print-shops/Singapore
www.pigments.io/print-shops/Makati
www.pigments.io/print-shops/Bangkok

Right now I only have those three cities, so I could just define the routes in the router but in the long term that’s not possible of course, so how would one go about doing this dynamically?