具有自定义路径和API名称的Google Cloud Endpoints

时间:2018-09-05 22:08:49

标签: java google-cloud-endpoints

在Google Cloud Endpoints中,资源的路径由以下方式给出:

  1. 在web.xml中为EndpointsServlet(例如api)配置的路径
  2. @API注释中“名称”属性下的名称(例如,myapi)
  3. 版本(例如v1)
  4. 在“ path”属性下为方法指定的名称。 (例如资产)

在上面的示例中,实际路径为/ api / myapi / v1 / asset

现在,问题是我不需要“ myapi”层。有两种方法可以做到这一点:

  1. 我可以将/ *映射到EndpointsServlet,并将myapi更改为api。但是,我并不是真的想要这样做,因为应用程序中还有其他我不使用该API的路径(例如,静态文件),最让人讨厌的是404页面停止工作。
  2. 我尝试为@API名称使用空字符串,但框架不允许这样做(自动将其设置为myapi)

有没有办法做#2并阻止框架在路径的前面加上“ api”部分(并保留版本)?

1 个答案:

答案 0 :(得分:0)

根据documentation,您需要在@API批注中指定一个名称,否则将按照您的说明使用myapi。

通过将web.xml中的url-pattern设置为/_ah/api,可以从端点删除路径的/*部分。然后在openapi.json中,将basePath设置为/。最终路径将从API注释开始。在这种情况下,/myapi/v1/asset。您可以将myapi设置为所需的任何值。

我知道这是您的#1,但这是我找到的最接近的方法。