Google Cloud Endpoints从随机API版本返回值

时间:2014-09-26 12:16:10

标签: google-app-engine google-cloud-endpoints

我已经使用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 "随机。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

事实证明问题与路径有关。我从两个版本的api定义中删除了path元素,它工作正常。

我现在可以看到分别对http://localhost:8888/_ah/api/helloworld/v1/SayHellohttp://localhost:8888/_ah/api/helloworld/v2/SayHello进行了调用。我猜硬编码路径删除了/ v1和/ v2,两个版本将同时被调用,只返回其中一个版本。