这可能是关于REST API的一个非常基本的问题。我刚刚开始阅读documentation并且没有看到如何为具有子对象的对象/模型实现API。相反,只有对象的描述只有基元(int,string等)。
是否有对象层次结构的示例?或者也许服务器模型只使用类定义中的ID来引用子对象,比如Google的NDB是如何做到的?
答案 0 :(得分:2)
来自docs:
当前支持的公共字段类型是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代码。
答案 1 :(得分:1)
如果你查看messages used for testing包中有使用子消息的例子,例如TestMessage1
有关更多示例,您可以查看dart_services项目,它是dartpad的后端。它有当前的api here和消息定义here。 dart_services不使用直接嵌套消息,而是使用其他消息的嵌套列表。