1

Предположим, у меня есть приложение, которое связывается с несколькими другими приложениями (микросервис, если хотите) или системами. Разумеется, адреса других приложений или систем должны предоставляться во время выполнения или в файле конфигурации.Как указать настраиваемые URL-адреса в файле конфигурации приложения?

Некоторые из других приложений и/или систем используют HTTP, некоторые из них являются брокерами или другими пользовательскими протоколами. Теперь у меня есть проблемы, как объявить это в файле конфигурации.

Например, API REST должен иметь схему (http/https), хост и порт, а другим нужен только хост и порт. Базы данных нуждаются в пути хоста, порта и базы данных (остальные после части URL-адреса jdbc:). Как называть эти переменные в файле конфигурации, чтобы пользователь, настраивая их, мог легко вычитать, что это такое, и должны ли они вводить схему в начале или в нет, и что от них ожидается, и сохранить ее согласованно? Иногда я путаю себя. Я могу найти имена для отдельных частей URL-адреса, но не имена для определенных сгруппированных частей для одного.

Примеры:

api1.host = http://example.com # error, this is the first part of the URL, before the path is appended 
api2.url = http://example.com/api # error, I needed the part without the /api 
broker.host = 192.168.2.2 # error, the user forgot the port 

Как избежать этой ситуации и быть последовательным?

Возможное решение, хотя и некрасиво это:

api1.SchemeHostPort = ... 
db.HostPortPath = ... 

ответ

1

Я подозреваю, что вы не найдете надежного метода (и если вы делаете, более находчивы дурак придет). Однако, я думаю, есть несколько вещей, которые вы можете сделать, чтобы помочь.

  1. Как вы предложили в вашем вопросе, конфигурация использование записей форма <name>.<type> = <value>, или в качестве альтернативы <type>.<name> = <value>.
  2. Если возможно, соберите все такие переменные вместе и представьте их блоком комментариев, который объяснит, какой тип <value> должен использоваться для каждого <type>.
  3. Когда значение переменной конфигурации извлекается (обычно при запуске), ваше приложение должно выполнить некоторые проверки проверки значения и сообщить об ошибке и умереть, если проверки проверки не пройдут.
+0

Я хихикнул на находчивое дурацкое предложение. Хорошо, давайте посмотрим, появляется ли что-то еще, я просто получаю параноик, я единственный, у кого такая проблема. –

Смежные вопросы