2015-09-17 2 views
1

У меня есть будущий метод, который делает выноску в .net-приложении. В верхней части у меня есть жестко закодированное заявление:Как запросить параметры удаленных сайтов от Apex

приватный статический конечный String SERVICE_URL = 'https://outside.site.com';

, который я использую позже в вызове setEndpoint для объекта HttpRequest.

Эта строка встречается в настройках удаленных сайтов - она ​​должна, чтобы она работала. Значение строки отличается между песочницей и производством, но имя объекта установки удаленных сайтов одинаково - «Брокер». Я хотел бы удалить эту строчную кодированную строку и использовать имя «Брокер», чтобы найти объект установки удаленных сайтов и установить конечную точку на свой URL-адрес - еще меньше нужно беспокоиться о переходе между песочницей и производством.

Хотя я вижу много примеров того, как создать удаленный сайт с использованием метаданных или инструментов, я не нашел примеров того, как запросить один, а десятки других людей спрашивают, как это сделать.

Какой лучший, самый простой способ устранить этот жесткий код?

ответ

0

Удаленные объекты - это объект метаданных, поэтому вы не можете напрямую обращаться к ним через SOQL/APEX. Это функция безопасности, чтобы убедиться, что выходы не попадают на сайты, которые не предназначены для обеспечения безопасности, т.е. отправка ваших защищенных данных за пределы вашей организации без вашего контроля.

Если это объект данных и может управляться через SOQL/Apex, кто-то может злонамеренно вставить строку, а затем передать все данные из SF на свой сайт.

Мое предложение здесь состоит в том, чтобы добавить ОСНОВНЫЕ базовые домены, например example.com, а затем либо использовать пользовательский объект, либо аналогичный для управления полными URL-адресами.

+0

Примеры использования метаданных api для создания удаленных настроек сайта из Apex или javascript. Если это возможно сделать, что, как вы говорите, опасно, должно быть возможно читать существующее, верно? Я посмотрел на пользовательский объект и как заставить его быть одиночным. Плюсы: также поддерживает выбор по умолчанию при поиске. Минусы: необходимо вручную синхронизировать. Внесение обоих имен в настройки удаленного сайта - все еще есть жесткий код, который должен знать, что использовать, и дает возможность для производства отправлять сообщения для тестирования или наоборот. –

+0

Однако ваши предложения дали мне еще одну идею: можно ли получить текущий URL сайта или какой-либо флаг «песочницы» от Apex? –

+0

Вот класс, который определяет версию SF и является ли это песочницей. http://www.michaelforce.org/recipeView?id=a0Ga000000Ekp65EAB К сожалению, это выглядит почти непроверяемым или, по крайней мере, невозможным получить на нем 75% покрытия. Тем не менее, это вариант, если ничего больше не появляется. –