我對整個Google Cloud Endpoint/Google App Engine世界都是全新的。如果您已經瀏覽了Google提供的Hello World示例(可能有),那麼您可能會記得自動爲您生成了2個類:MyBean
和MyEndpoint
。特別是在Google Cloud Endpoint中「暴露」API的本質是什麼?
這些是這樣的:
/**
* The object model for the data we are sending through endpoints
*/
public class MyBean {
private String myData;
public String getData() {
return myData;
}
public void setData(String data) {
myData = data;
}
}
而且,
/**
* An endpoint class we are exposing
*/
@Api(
name = "myApi",
version = "v1",
namespace = @ApiNamespace(
ownerDomain = "backend.myapplication.DJ.example.com",
ownerName = "backend.myapplication.DJ.example.com",
packagePath = ""
)
)
public class MyEndpoint {
/**
* A simple endpoint method that takes a name and says Hi back
*/
@ApiMethod(name = "sayHi")
public MyBean sayHi(@Named("name") String name) {
MyBean response = new MyBean();
response.setData("Hi, " + name);
return response;
}
}
現在,我檢查了代碼中的index.html(其中大幹快上部署後端打開)。我發現在JavaScript以下電話:
gapi.client.myApi.sayHi({'name': name}).execute(
現在,我可以看到myApi通過注釋和的sayHi()是對應的方法名稱,我不明白的是暴露了一個API的概念並且註釋幫助了這一點。沒有關於公開API的信息。
任何人都可以幫助我理解這一點嗎?
感謝您的回覆和參考鏈接。據我所知,理解這個系統的關鍵是確定各方。因此,如果我想通過界面公開我的圖書館,可以通過提供的註釋來完成(由Google推動)。但如果我在Android上開發,我只想調用Google的API來處理對我的應用程序的請求。我的後端模塊會處理它們,並且只有Servlet來處理它們。此外,後端模塊將部署在服務器上。在這些交互中,我找不到需要公開我的代碼。 contd ... –
那麼,我很好去沒有曝光的權利?唯一可能需要暴露的場景是服務器想要向我的代碼發送請求(還沒有想到任何此類場景)。 –
我不是100%肯定了解你的需求。如果您的目標是讓您的Android應用與您的後端進行互動,例如將數據存儲在雲端數據存儲中,雲端點確實是一條可行的路。通過使用你的話我會說,你應該「調用谷歌的API來處理來自我的應用程序的請求」。我建議你看看這些關於端點和Android的非常好的教程:https://rominirani.com/gradle-tutorial-part-8-gradle-app-engine-endpoints-android-studio-6584358b29fd#.bkyd868z9。 –