Как получить доступ к REST API, размещенным локально на Alexa

Я разрабатываю пользовательский навык Alexa, и у меня есть требование, чтобы Alexa могла получить доступ к REST API, которые размещены локально на http: // локальный: 8080? есть идеи как это сделать?

Спасибо!

вы уже пробовали ngrok? ngrok может сделать ваше локальное приложение доступным для Интернета всего за несколько шагов.

bgsuello 07.05.2018 12:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
1
701
2

Ответы 2

Если вы действительно хотите это сделать, и я предполагаю, что вы размещаете навыки на AWS Lambda, это потребует довольно много работы.

Ваши локальные конечные точки должны быть доступны извне вашей сети, что требует переадресации портов в вашем маршрутизаторе на ваш компьютер, на котором размещены конечные точки. Это необходимо настроить в вашем маршрутизаторе.

Более простой способ - развернуть ваш проект, содержащий API, в чем-то вроде Heroku, что можно легко сделать. Они предоставляют вам домен и делают конечные точки доступными для Lambda. Это должно быть возможно в пределах их бесплатного уровня.

Благодарность! Мое локальное приложение размещено и настроено для WildFly (Jboss) и использует PostgreSQL в качестве базы данных. Потребует ли хостинг на Heroku изменения этих параметров?

samdset 04.05.2018 21:20

@Sambhav Я не очень знаком с этим, но уверен, что они вас охватили, у них масса настроек.

ffritz 04.05.2018 21:38

@Sambhav рассмотрите вариант размещения вашего приложения на AWS. Вы можете настроить API-шлюз для получения запросов и пересылки на конечную точку Lambda или EC2, где находится ваше приложение.

Mike Dinescu 05.05.2018 23:11

Вот ссылка на сайт к довольно хорошей статье о том, как работают IP-адреса.

Разрешение доступа к устройству, находящемуся в вашей локальной сети (например, портативному компьютеру или Raspberry Pi, подключенному к вашему Wi-Fi), извне вашей локальной сети (например, из службы, работающей на AWS), потребует сопоставления двух отдельных IP-адресов:

  1. IP-адрес, назначенный вашему маршрутизатору (ваш общедоступный IP-адрес).
  2. Частные IP-адреса, назначенные вашим маршрутизатором вашим устройствам (ноутбуку, iPhone, RPi и т. д.).

У вас есть несколько вариантов разрешения доступа к IP-адресу вашего маршрутизатора (# 1) извне вашей локальной сети:

а. Платите своему интернет-провайдеру, чтобы он предоставил вам статический IP-адрес. б. Используйте службу динамического DNS, такую ​​как DuckDNS или Нет-IP.

Если у вас есть фиксированный общедоступный IP-адрес, который можно использовать для доступа к вашему маршрутизатору, вам нужно будет сопоставить порт на вашем маршрутизаторе (№1) с IP-адресом устройства в вашей локальной сети (№2). Обычно это называется «перенаправление портов». Большинство маршрутизаторов поддерживают такую ​​настройку. Фактически, вы сообщаете своему маршрутизатору: «Когда вы получите сообщение: передать его на мой ноутбук:»

Ваш локальный частный IP-адрес обычно имеет значение IP, например 192.168.0.23 (где 23 может быть любым от 1 до 254).

Внешний IP-адрес будет начинаться не с 192. См. Первую ссылку выше относительно диапазонов IP-адресов.

Вы можете найти в Google "переадресацию портов" и "общедоступный IP-адрес" для получения дополнительной информации о том, как работают IP-адреса и переадресация портов, но, надеюсь, это поможет вам начать работу. Сначала это может показаться немного сложным, но если я смогу это понять, то сможет любой :-)

Другие вопросы по теме