Конечные точки Google Cloud с пользовательским путем и именем API - PullRequest
0 голосов
/ 06 сентября 2018

В конечных точках Google Cloud путь к ресурсу задается следующим образом:

  1. Путь, настроенный в web.xml для EndpointsServlet (например, api)
  2. Имя, указанное в аннотации @API, в свойстве name (например, myapi)
  3. Версия (например, v1)
  4. Имя, данное методу, в свойстве path. (например, актив)

В приведенном выше примере фактический путь будет / api / myapi / v1 / asset

Теперь проблема в том, что мне не нужен слой "myapi". Есть два способа сделать это:

  1. Я могу сопоставить / * серверу конечных точек и изменить myapi на api. Однако я не хочу этого делать, потому что в приложении есть другие пути (например, статические файлы), которые я не использую для API, и больше всего раздражает то, что 404 страницы перестают работать.
  2. Я пытался использовать пустую строку для имени @API, но фреймворк не позволяет этого (автоматически устанавливает для myapi)

Есть ли способ сделать # 2 и не дать фреймворку префиксировать путь с помощью части "api" (и сохранить версию)?

1 Ответ

0 голосов
/ 06 сентября 2018

Согласно документации , вам необходимо указать имя в аннотации @API, иначе myapi будет использоваться, как вы указали.

Вы можете удалить часть пути /_ah/api из конечной точки, установив шаблон URL в файле web.xml равным /*. Затем в openapi.json вы устанавливаете basePath на /. Окончательный путь начинается с аннотации API. В этом случае /myapi/v1/asset. Вы можете установить myapi на любое желаемое значение.

Я знаю, что это ваш # 1, но это самый близкий путь, который я нашел.

...