У нас есть приложение AppEngine, которое мы хотели бы использовать с конечными точками Google. Нам необходимо поддерживать веб-клиента, а также мобильных клиентов, что делает конечные точки привлекательными для нас, поскольку мы можем легко создавать клиентские API для Android и iOS.
Проблема заключается в том, что облачные конечные точки в настоящее время не поддерживают пользовательские домены, поэтому наш веб-клиент не может напрямую общаться с конечными точками (мобильные клиенты не имеют этой проблемы).
Вот что мы уже пробовали:
-
Запросы CORS от клиента к домену appspot.com. Проблема с этим заключается в том, что наш запрос не соответствует требованиям для простых CORS (пользовательских заголовков, файлов cookie и т.д.), Запрос предварительной проверки должен быть отправлен с каждым запросом, который замедляет все
-
Клиент делает запрос к нашему пользовательскому домену, который, в свою очередь, запрашивает конечную точку appspot. Опять же, дополнительный запрос не подходит для производительности
-
Мы также попытались создать дубликат API Джерси REST только для веб-клиента. Мы удваиваем аннотацию всех наших методов (один раз для Cloud Endpoints и один раз для Джерси), а веб-клиент обращается к API Джерси, а мобильные клиенты получают доступ к API конечных точек. Это работает довольно хорошо, за исключением того, что Jersey и Endpoints используют разные исключения. Поэтому, если мы хотим выбросить исключение 404 Endpoints, которое испортит ответ Джерси и наоборот.
Есть ли другие варианты? Мы хотим использовать возможности конечных точек для создания мобильных клиентов, а также обойти ограничение пользовательского домена для веб-клиента.