Dart 如何使用RPC包处理从数据库读取的json数据

Dart 如何使用RPC包处理从数据库读取的json数据,dart,Dart,我尝试使用rpcdart包实现一个API 在我找到的所有示例中,响应都是手动生成的(即newresponse()…message=“hello”) 在我的例子中,我从mongodb读取JSON数据,并希望以最小的转换返回它们(基本上只选择外部属性) 方法架构的fromRequest可用于执行此操作: class QueryResult { //my props } @ApiMethod(path: "myMongoQuery") Future<List<Qu

我尝试使用rpcdart包实现一个API

在我找到的所有示例中,响应都是手动生成的(即newresponse()…message=“hello”)

在我的例子中,我从mongodb读取JSON数据,并希望以最小的转换返回它们(基本上只选择外部属性)

方法架构的
fromRequest
可用于执行此操作:

  class QueryResult {
    //my props
  }

  @ApiMethod(path: "myMongoQuery")
  Future<List<QueryResult>> myMongoQuery() async {
    var schema = _server.apiMap["/query/v1"].schemaMap["QueryResult"];
    var results = await coll.find();

    return results.map(schema.fromRequest).toList();
  }
类查询结果{
//我的道具
}
@ApiMethod(路径:“myMongoQuery”)
Future myMongoQuery()异步{
var schema=_server.apiMap[“/query/v1”].schemaMap[“QueryResult”];
var results=await coll.find();
返回results.map(schema.fromRequest.toList();
}
我的代码中的问题是第一行(
\u server.apiMap[“/query/v1”].schemaMap[“QueryResult”]
)检索方法的模式纯粹是一种黑客行为

我尝试使用mirror以优雅/通用的方式检索模式,但没有成功

有人能帮我吗

干杯


Nicolas

我找到了一种访问响应模式的简单方法:
var querySchema=new ApiParser().parseSchema(reflectClass(QueryResult),false)