簡體   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