Как мне вызвать API в другом проекте, но такое же решение без жесткого кодирования URL?

0

У меня есть два проекта. Один для моего углового кода front-end. Другое для веб-API. Когда я нахожусь в интерфейсном проекте, я хочу сделать вызов API в моем другом проекте.

Учебники Web API, которые я видел, показывают относительный url, включающий /api, например: $ http.get("/api/trivia")

Это отлично работает, если javascript находится в том же проекте, что и Web API, но это не для моего решения.

Я могу жестко запрограммировать URL-адрес моего локального порта API, и он отлично работает, но, конечно, это не сработает, когда я развертываю приложение в Azure. Как мне обращаться с этими URL-адресами?

Спасибо.

  • 0
    Вы можете ввести константу в свой модуль и использовать ее в качестве корневого пути. Затем вы можете добавить путь API к корневому пути для выполнения вызовов API. Значение константы, которую вам нужно выбрать динамически из файла конфигурации на стороне сервера.
Теги:
asp.net-web-api

1 ответ

0
Лучший ответ

Когда вы делаете $ http с полным URL (http://...), Он напрямую смотрит на данный адрес. Но когда вы указываете относительный путь (без http://...), Он просматривает ваш текущий сайт + заданный относительный URL-адрес пути. Итак, если ваш api также размещен на одном сайте, вы все равно можете сделать ссылку в виде $ http.get("/api/trivia") или иначе, как вы сказали, если знаете, где вы размещаете свой сайт в Azure, вы можете сделать его жестким кодом в в вашем скрипте.

  • 0
    Итак, ответ «это невозможно». Если у меня есть интерфейс javascript и мой веб-интерфейс API в двух разных проектах, мне нужно будет манипулировать жестко закодированными URL-адресами при тестировании и развертывании. Благодарю.
  • 0
    Речь идет не о том, чтобы иметь несколько проектов, разместите свой веб-интерфейс также на том же сайте iis \ порт, и вы можете работать с методом относительного пути. и вам не нужно иметь жестко закодированные значения везде. создайте конфигурационный файл для вашего приложения и установите глобально используемые переменные там, вставьте зависимость в ваш контроллер \ сервис и обратитесь к значению конфигурации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню