Все это делается при помощи заглушек, которые вместо реализации отдают правдоподобные данные, просто захардкоженные. Сервисы, будь они хоть SOA, хоть микросервисами, они вообще не должны быть привязаны к портам. Сервис - это фасад, закрывающий от внешнего мира реализацию серверной логики, при запуске сервис из настроек берет порт, хост, адреса доступа к другим сервисам, и любые другие параметры. Для того, чтобы стартовать несколько сервисов на одной машине, имитировать серверное окружение, несколько серверов, можно использовать контейнеры docker или виртуальные машины. С разных портов сервисы можно объединять в один пучек при помощи nginx или другого реверс-прокси с URL-реврайтингом. Или есть вариант использовать сервер приложений, который скрывает от разработчика задачу запуска и объединения сервисов в один пучок.