使用不同的字段子集在端点和Objectify之间共享类

时间:2016-10-25 16:54:56

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

说这是我的课程

@Entity
public class Library{
...
}

@Entity
public class Book{
    @Load
    @Parent
    @ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
    private Ref<Library> libraryRef;

    @Ignore
    private Library library;
}

我想将List<Book>发送到“android”客户端:我不希望android客户端获取libraryRef但我希望客户端获得library

以下是我现在拥有的数据访问方法

public static List< Book > getAllBooks(){
    return OfyService.ofy().load().type(Book.class).list();
}

我的端点只会将List<Book>返回给android。我相信我已经完成了第一部分:确保数据存储不存储librarylibraryRef。但是我如何完成第二部分:确保客户端获得library

我确定它尚未加载。我如何确保它已加载?我是否必须使用自己的for循环进行迭代?

1 个答案:

答案 0 :(得分:0)

对于使用客户端和服务器之间共享的代码的任何人,我的建议是在API对象和域对象之间进行清晰的分离。制作DTO需要更多的工作,但它会让您的整个系统更加灵活 - 如果您想要更改您的域名对象,您就不会冒险破坏速度缓慢的手机应用程序(升级周期。