繁体   English   中英

我的后端API名称是什么? 它在哪里? 从Android Studio客户端调用Google Cloud端点后端API

[英]What is my backend API name? Where is it? Calling Google Cloud endpoint backend API from Android Studio Client

我想在我的android studio(v3.3)项目中使用Google Cloud Endpoint v2连接到App Engine(并最终连接到Google Cloud sql(因为我将进行复杂的查询,请不要使用Firebase))。

Google Cloud SDK,OpenAPI,Endpoints配置正在运行(它可以通过Windows PowerShell接收回显“ hello world”),并且我按照本教程构建了客户端库: https : //cloud.google.com/endpoints/docs/frameworks / JAVA / gen_clients

我已将客户端库导入Android Studio项目文件Libs,目前正在按照本教程从Android Studio Client调用后端API: https : //cloud.google.com/endpoints/docs/frameworks/java/calling-from -Android

编辑gradle文件后,建议使用您的后端API的名称替换下面代码中的“ Tictactoe”

Tictactoe.Builder builder = new Tictactoe.Builder(
    AndroidHttp.newCompatibleTransport(), new GsonFactory(), null);
service = builder.build();

我花了8个小时试图弄清楚那是什么。 我在导入的库中找不到任何有效的文件。 我尝试单独使用我的Google Cloud项目ID,或者后面跟着.appspot.com,但没有任何效果。

我认为它必须在我的项目文件中的某个位置,我只需要知道位置。 而且不知道它的名字使搜索变得棘手。

注意:Google Cloud网站建议您就Stackoverflow提出技术问题

此名称来自配置Endpoints API时设置的几个@Api批注。 听起来您可能是从appengine-java8 / endpoints-v2-backend示例开始的,该示例具有以下声明:

@Api(
    name = "echo",
    version = "v1",
    namespace =
    @ApiNamespace(
        ownerDomain = "echo.example.com",
        ownerName = "echo.example.com",
        packagePath = ""
    ),
...

您可以在Echo.java中看到完整的定义。

这里要注意的重要事项是name字段和namespaceownerDomain 这两个都用于生成代码将所属的Java包,但是ownerDomain路径的各段是相反的(如Java包中的标准,它以与正常DNS段相反的方式表示层次结构),因此Java包最终是com.example.echo.echo Java类仅以@Api.name字段命名(大写),因此该类名为Echo

因此,您要查找的标准Java类是:

com.example.echo.echo.Echo

或者,对于您的确切代码段:

com.example.echo.echo.Echo.Builder

这可能会造成混淆,因为此示例使用了“ echo”一词很多次,很难归因于每个单独echo的来源,但这是另一个示例:

假设您将@Api.name设置为myApiName ,然后将@Api.namespace.ownerDomain设置为mycompany.com 您将从生成的客户端库中使用的标准Java类是:

com.mycompany.myApiName.MyApiName

但是,我不建议您尝试根据这些规则手动确定Java包和类名。 要做的更简单的事情就是查看由Endpoints生成的客户端库。

当您运行gradle endpointsClientLibs ,命令会将其生成的文件的位置输出为.zip文件。 您所需要做的就是解压缩该文件并浏览其中所有生成的代码,以轻松查看Java包结构的样子,甚至包括Endpoints为您生成的确切类定义。

如果您在IDE中找不到这些类时遇到麻烦,我想知道您是否可能意外地错过了生成客户端库指令中的步骤4-7:

4) Unzip the file using the unzip utility, or use another ZIP-compatible unarchiving utility:

unzip ./echo-v1-java.zip

5) Change directory: cd echo.

6) Build the client library:

gradle build

The output is in the `build/libs` directory. The exact filename depends on the version of the Java client. It is something like echo-v1-1.23.0-SNAPSHOT.jar.

7) Add the client library JAR to your Java or Android app.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM