我已经使用Google Cloud Endpoints创建了一个简单的API。现在,我想为此API创建一个新版本。
我有以下课程:
@Api(name = "helloworld",
version = "v1")
public class HelloWorldApi {
@ApiMethod(name = "sayHello", path = "/sayHello", httpMethod = "get")
public HelloWorld SayHello(){
return new HelloWorld("Hello World v1");
}
}
和
@Api(name = "helloworld",
version = "v2")
public class HelloWorldApiV2 {
@ApiMethod(name = "sayHello", path = "/sayHello", httpMethod = "get")
public HelloWorld SayHello(){
return new HelloWorld("Hello World v2");
}
}
然后我部署并转到 [myapplication] .appspot.com / _ah / api / explorer 。在这里,我可以看到"所有版本"用" v2"作为默认值。
问题在于我使用哪一个并不重要。他们都返回" Hello World v1 "或" Hello World v2 "随机。
我做错了什么?
答案 0 :(得分:1)
事实证明问题与路径有关。我从两个版本的api定义中删除了path元素,它工作正常。
我现在可以看到分别对http://localhost:8888/_ah/api/helloworld/v1/SayHello
和http://localhost:8888/_ah/api/helloworld/v2/SayHello
进行了调用。我猜硬编码路径删除了/ v1和/ v2,两个版本将同时被调用,只返回其中一个版本。