gpt4 book ai didi

google-app-engine - 为什么我的 API 没有在部署时显示?

转载 作者:太空宇宙 更新时间:2023-11-03 15:29:59 25 4
gpt4 key购买 nike

我怀疑这是由 Endpoints 中的以下错误(如果有效)引起的,但我也确信某处有解决方法。

https://code.google.com/p/googleappengine/issues/detail?id=9050&can=4&colspec=ID%20Type%20Component%20Status%20Stars%20Summary%20Language%20Priority%20Owner%20Log

重现步骤:

  1. 更改 Endpoints 类中的方法名称、方法的 API 名称或参数列表。
  2. 运行 endpoints.sh 脚本以生成 API 文件。
  3. 在本地检查 API 文件并见证其中的更改。到目前为止一切顺利。
  4. 部署到服务器上应用的默认版本。
  5. 检查调用/_ah/spi/BackendService.getApiConfigs 的日志。没有错误!
  6. 转到 API Explorer 并清除浏览器缓存。检查 API。变化不存在。
  7. 直接在浏览器中请求 API 文件,例如。 https://[app-id].appspot.com/_ah/api/discovery/v1/apis/[api-name]/v1/rpc 没有变化。

对上述情况感到沮丧,我决定完全从头开始开发一个新的应用程序 ID。我仍然在 API Explorer 中看不到 API,并且在上面的第 7 步中的 URL 上收到 404!

这是我的端点类:

@Api(name = "ditto", version = "v1")
public class CategoryEndpoint extends BaseEndpoint {

@SuppressWarnings("unused")
private static final Logger log = Logger.getLogger(CategoryEndpoint.class.getName());

@ApiMethod(name = "category.list")
public WireCategory list() {
Category root = categoryDao.getRoot();
WireCategory wireRootCategory = new WireCategory(root);

return wireRootCategory;
}

}

这是生成的 .api 文件:

{
"extends" : "thirdParty.api",
"abstract" : false,
"root" : "https://1.eliot-dev-uk-ditto-do.appspot.com/_ah/api",
"name" : "ditto",
"version" : "v1",
"defaultVersion" : false,
"adapter" : {
"bns" : "https://1.eliot-dev-uk-ditto-do.appspot.com/_ah/spi",
"deadline" : 10.0,
"type" : "lily"
},
"auth" : {
"allowCookieAuth" : false
},
"frontendLimits" : {
"unregisteredUserQps" : -1,
"unregisteredQps" : -1,
"unregisteredDaily" : -1,
"rules" : [ ]
},
"cacheControl" : {
"type" : "no-cache",
"maxAge" : 0
},
"methods" : {
"ditto.category.list" : {
"path" : "list",
"httpMethod" : "GET",
"scopes" : [ ],
"audiences" : [ ],
"clientIds" : [ ],
"rosyMethod" : "ditto.api.CategoryEndpoint.list",
"request" : {
"body" : "empty"
},
"response" : {
"body" : "autoTemplate(backendResponse)"
}
}
},
"descriptor" : {
"schemas" : {
"WireCategory" : {
"id" : "WireCategory",
"type" : "object",
"properties" : {
"webSafePath" : {
"type" : "string"
},
"prettyPath" : {
"type" : "string"
},
"children" : {
"type" : "array",
"items" : {
"$ref" : "WireCategory"
}
},
"path" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"name" : {
"type" : "string"
},
"id" : {
"type" : "string",
"format" : "int64"
}
}
}
},
"methods" : {
"ditto.api.CategoryEndpoint.list" : {
"response" : {
"$ref" : "WireCategory"
}
}
}
}
}

此 URL 给了我一个 404,我希望在其中看到我的 API JSON:

https://eliot-dev-uk-ditto-do.appspot.com/_ah/api/discovery/v1/apis/ditto/v1

这简直要了我的命!

编辑:

这是我刚刚在 App Engine 1.7.5 和 1.7.6 生成的 .api 文件之间发现的差异。不确定 URL 为何更改。

ditto-v1.api from 1.7.6:

{
"extends" : "thirdParty.api",
"abstract" : false,
"root" : "https://1.eliot-dev-uk-ditto-do.appspot.com/_ah/api",
"name" : "ditto",
"version" : "v1",
"defaultVersion" : false,
"adapter" : {
"bns" : "https://1.eliot-dev-uk-ditto-do.appspot.com/_ah/spi",
"deadline" : 10.0,
"type" : "lily"
}
...

ditto-v1.api from 1.7.5:

{
"extends" : "thirdParty.api",
"abstract" : false,
"root" : "https://eliot-dev-uk-ditto-do.appspot.com/_ah/api",
"name" : "ditto",
"version" : "v1",
"defaultVersion" : false,
"adapter" : {
"bns" : "http://eliot-dev-uk-ditto-do.appspot.com/_ah/spi",
"deadline" : 10.0,
"type" : "lily"
}
...

最佳答案

正如您已经指出的,这是由于 SDK 1.7.6 中的一个奇怪问题,它在 .api 文件的端点根 URL 的开头添加了 1....

我已经尝试了新的 SDK 1.7.7,它似乎已经解决了......

关于google-app-engine - 为什么我的 API 没有在部署时显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15666157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com