有没有人知道使用 ActionScript 3 访问 Google AppEngine Cloud Enpoints 而无需通过 JavaScript 层的方法?我一直在 docs 和 Google 上查找任何教程或示例,但没有发现任何有用的东西。
1 回答
我们没有 AS3 客户端库,目前据我所知没有任何计划,因此您必须依靠 HTTP 来进行 REST 调用。
TLDR;使用 API 资源管理器
如果您访问
https://your-app-id.appspot.com/_ah/api/explorer
(替换your-app-id
为您的实际应用程序 ID),然后您将被重定向到您自己的自定义版本的 Google APIs Explorer。
在其中,您可以单击各个 API 并查看所有可用方法的列表。在每种方法的页面中,您可以尝试形成请求,资源管理器将建议使用正确的值。
单击“执行”后,完整的 HTTP 请求(标头和所有)和响应将打印在您的页面上,其中将显示要使用的命令。
说明如何使用发现文档
API 的发现文档将包含构建请求所需的所有信息。
要查找调用 API 的根目录,请查看baseUrl
密钥。它应该是这样的:
https://your-app-id.appspot.com/_ah/api/tictactoe/v1/
为了弄清楚如何调用特定方法,每个方法都有描述,作为资源嵌套在 Discovery Document 中。例如,对于井字游戏Python 示例,该board_get_move
方法在装饰器中有一个name
of 。这意味着该方法归资源所有。board.getmove
@endpoints.api
getmove
board
如果您查看resources.board.methods
发现文档中的密钥,您可以看到该getmove
方法:
"getmove": {
"id": "tictactoe.board.getmove",
"path": "board",
"httpMethod": "POST",
"description": "Exposes...",
"request": {
"$ref": "TictactoeApiMessagesBoardMessage"
},
"response": {
"$ref": "TictactoeApiMessagesBoardMessage"
}
}
结合我们知道的path
请求baseUrl
将需要发送到
https://your-app-id.appspot.com/_ah/api/tictactoe/v1/board
从httpMethod
我们知道请求将使用 HTTP 方法POST
。
最后,为了指定请求,我们看到了对模式的引用:
"$ref": "TictactoeApiMessagesBoardMessage"
查看发现文档中的schemas.TictactoeApiMessagesBoardMessage
密钥,我们看到:
"TictactoeApiMessagesBoardMessage": {
"id": "TictactoeApiMessagesBoardMessage",
"type": "object",
"description": "ProtoRPC message definition to represent a board.",
"properties": {
"state": {
"type": "string"
}
}
}
所以我们知道有效负载必须包含一个名为的字段state
,并且该字段必须是一个字符串。