использование Google Cloud Endpoint Framework 2.0 с пользовательским доменом - PullRequest
0 голосов
/ 15 мая 2018

Я хостую мобильный бэкэнд (написанный на Java) в App engine standard environment, используя Cloud endpoint framework 2.0, доступ к которому я могу получить по этому адресу https://api -dot- [projectId] -appspot.com/_ah/api/ MyAPI / v1 / путь

Теперь я пытаюсь использовать собственный домен [api.mydomain.app] и вот что я сделал:

1- Я добавил этот домен api.mydomain.app в настройках своего устройства, и теперь он проверен и имеет действительный SSL, управляемый Google

2- Я добавил 8 записей DNS (A & AAAA) в этот домен "mydomain.app" в godaddy, как показано ниже:

A   api xxxxxxx
A   api xxxxxxx
A   api xxxxxxx
A   api xxxxxxx

AAAA    api xxxxxxx
AAAA    api xxxxxxx
AAAA    api xxxxxxx
AAAA    api xxxxxxx

и у меня одинаковые записи для @ (для службы по умолчанию) и admin (для службы администратора), и оба работают просто отлично У меня также есть эта запись CNAME * ghs.googlehosted.com

3 - я добавил эти записи ниже в dispatch.xml:

  <dispatch>
       <!-- Send all Mobile traffic to the API. -->
      <url>api.mydomain.app/*</url>     
      <module>api</module>
  </dispatch>   

 <dispatch>
      <!-- Send all Admin traffic to the Admin Platform. -->
      <url>admin.harmonica.app/*</url>
      <module>admin</module>
  </dispatch> 

4 - имя модуля для этого бэкэнда определяется в appengine-web.xml как api

5 - это определение моего класса API

@Api(name = "myApi", version = "v1", authenticators = { Authenticator.class },
        // scopes = { Constants.EMAIL_SCOPE },
        clientIds = { Constants.WEB_CLIENT_ID,
                Constants.ANDROID_CLIENT_ID }, description = "API for Harmonica Backend application.")
public class MyApi {...}

6 - так я определяю EndpointsServlet в web.xml

<servlet-mapping>
  <servlet-name>EndpointsServlet</servlet-name>
  <url-pattern>/_ah/api/*</url-pattern>
 </servlet-mapping>

так что после всего этого я пытаюсь получить доступ к https://api.mydomain.app/myApi/v1/path или https://api.mydomain.app/path это показывает мне этот ответ:

Error: Not Found
The requested URL /dating was not found on this server.

и в логах сервера я вижу это No handlers matched this URL.

Так вы можете мне помочь? я что-то упустил?

Заранее спасибо!

1 Ответ

0 голосов
/ 17 мая 2018

Я изменил шаблон URL EndpointsServlet, чтобы он был:

   <servlet-mapping>
      <servlet-name>EndpointsServlet</servlet-name>
    <!--   This is for accessing the API by the domain name -->
      <url-pattern>/*</url-pattern>  
    <!--   This is for the backward compatibility -->
      <url-pattern>/_ah/api/*</url-pattern>
   </servlet-mapping>

и теперь я могу получить доступ к своему API из своего пользовательского домена.

...