Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rest Dart RPC和对象层次结构_Rest_Dart_Google Cloud Datastore_App Engine Ndb_Dart Rpc - Fatal编程技术网

Rest Dart RPC和对象层次结构

Rest Dart RPC和对象层次结构,rest,dart,google-cloud-datastore,app-engine-ndb,dart-rpc,Rest,Dart,Google Cloud Datastore,App Engine Ndb,Dart Rpc,这可能是关于RESTAPI的一个非常基本的问题。我刚刚开始阅读,没有看到如何为具有子对象的对象/模型实现API。取而代之的是,只有一个对对象的描述,它只包含原语(int、string等) 是否有对象层次结构的示例?或者服务器模型只是在类定义中使用ID来引用子对象,比如Google的NDB是如何做到的?来自文档: 当前支持的公共字段类型有int、double、bool、, 字符串、日期时间、列表、映射和其他消息类 这意味着您可以创建所需的结构,唯一的要求是其中的所有对象都必须以该特定方式构造 例如

这可能是关于RESTAPI的一个非常基本的问题。我刚刚开始阅读,没有看到如何为具有子对象的对象/模型实现API。取而代之的是,只有一个对对象的描述,它只包含原语(int、string等)

是否有对象层次结构的示例?或者服务器模型只是在类定义中使用ID来引用子对象,比如Google的NDB是如何做到的?

来自文档:

当前支持的公共字段类型有int、double、bool、, 字符串、日期时间、列表、映射和其他消息类

这意味着您可以创建所需的结构,唯一的要求是其中的所有对象都必须以该特定方式构造

例如:

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代码

如果您查看软件包中的示例,可以使用子消息,例如


有关更多示例,您可以查看项目,它是dartpad的后端。它有其当前的api和消息定义。dart_services不使用直接嵌套消息,而是使用其他消息的嵌套列表。

也许这提供了一些见解(我自己还没有读过)谢谢。这是一个有趣的小博客帖子。Dart API看起来很干净,但是没有存储。关于没有继承的观点很好。你是说还有其他客户端语言吗?:-)