使用Google Cloud Endpoints返回错误

Mar*_*ijk 5 google-app-engine google-cloud-endpoints

我有一个生成端点如下:

public Book insertBook(Book book) {
    PersistenceManager mgr = getPersistenceManager();
    try {
        if (containsShout(book)) {
            throw new EntityExistsException("Object already exists");
        }
        mgr.makePersistent(book);
    } finally {
        mgr.close();
    }
    return book;
}
Run Code Online (Sandbox Code Playgroud)

我想知道如何将错误返回给客户端.例如,这本书包含一些必填字段,ISNM检查等.

所以我会假设抛出一个异常,但是它如何映射到返回的json响应.json repsonse应包含所有字段错误以突出显示客户端中的这些字段.

Gab*_*ner 5

通常,异常会映射到响应中的500 http状态代码.除以下例外,您可以获得不同的代码: com.google.api.server.spi.response.BadRequestException- > 400 com.google.api.server.spi.response.UnauthorizedException- > 401 com.google.api.server.spi.response.ForbiddenException- > 403 com.google.api.server.spi.response.NotFoundException- > 404

如果您在Android中使用端点,则错误代码将在抛出的IOException中,您可以在catch中做出相应的反应.