这可能是关于 REST API 的一个非常基本的问题。我刚开始阅读文档,没有看到如何为具有子对象的对象/模型实现 API。相反,只有原始对象(int、string 等)的描述。
有没有对象层次结构的例子?或者,服务器模型可能只是在类定义中使用 ID 来引用子对象,就像 Google 的 NDB 是如何做到的?
这可能是关于 REST API 的一个非常基本的问题。我刚开始阅读文档,没有看到如何为具有子对象的对象/模型实现 API。相反,只有原始对象(int、string 等)的描述。
有没有对象层次结构的例子?或者,服务器模型可能只是在类定义中使用 ID 来引用子对象,就像 Google 的 NDB 是如何做到的?
来自文档:
当前支持的公共字段类型为 int、double、bool、String、DateTime、List、Map 和另一个消息类。
这意味着您可以创建所需的结构,唯一的要求是其中的所有对象都必须以这种特定方式构造。
一个例子:
class Person {
String name;
int age
}
class Address {
String city;
String street;
}
class School {
List<Person> staff;
Person headmaster;
List<Person> students;
Address address;
}
我不太喜欢的一个限制是你不能在这些类中使用继承,但是 rpc 包的重点是创建一个可以被任何客户端使用的 API,而不仅仅是 dart 代码。
如果您查看用于测试包的消息,则有一些使用子消息的示例,例如TestMessage1。
有关更多示例,您可以查看dart_services项目,它是 dartpad 的后端。它在此处有当前的 api ,在此处有消息定义。dart_services 不使用直接嵌套消息,而是使用其他消息的嵌套列表。