【问题标题】:Google Cloud Endpoints with custom path and API name具有自定义路径和 API 名称的 Google Cloud Endpoints
【发布时间】:2018-09-05 22:08:48
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我认为如果你所有的@ApiMethod 路径都以/ 开头,那么它会做你想做的事。

标签: java google-cloud-endpoints


【解决方案1】:

根据documentation,需要在@API注解中指定名称,否则会按照你说的使用myapi。

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

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

【讨论】:

    猜你喜欢
    • 2017-11-13
    • 1970-01-01
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 1970-01-01
    • 2016-02-03
    • 2013-02-16
    相关资源
    最近更新 更多