在后台Graph中增加字段
1. 所有GraphQL中返回的字段都需要在xmeta文件中定义
代码生成时会自动根据数据库模型设置为每个published=true的字段生成prop定义,自动生成的xmeta定义存放在以下划线为前缀的文件中。
例如 NopAuthUser.xmeta继承了_NopAuthUser.xmeta。我们可以在不带下划线的文件中对自动生成的xmeta进行增强。
可以增加字段、为字段增加属性或者删除自动生成的字段定义。
2. 为xmeta中定义的prop提供Loader
xmeta定义会自动转化为GraphQL的类型定义,后台还需要增加GraphQL所要求的Fetcher定义才能实际返回数据
2.1 在Java实体上增加get方法
直接在NopAuthUser.java类中增加对应的get/set方法即可实现数据存取。xmeta仅仅涉及到接口层,对底层存储机制没有任何假定。
2.2 在BizModel上增加方法,并设置@BizLoader注解
例如为NopAuthUser增加roleUsers属性对应的fetcher
|
2.3 在XBiz模型中定义loader
2.4 在XMeta模型中直接定义getter/setter
对于比较简单的情况,我们不需要修改BizModel或者实体类,可以直接在后台接口层的xmeta模型中直接定义存取器。
|
$toLocalDate是扩展类型转换函数。所有的表达式最后都可以通过$toLocalDate/toInt()等方式调用ConvertHelper上的类型转换函数。
对于一些常见的可复用转换函数等,我们可以利用Nop平台内置的x:gen-extends
、x:post-extends
等元编程机制自动生成属性定义。
参见biz-gen.xlib