Fei*_*anZ 5 rest restful-architecture graphql
我的数据模型有两个资源:Folder和Messages. 每条消息都属于一个文件夹。有时我想得到一个文件夹列表(包括每个文件夹的一些字段)。有时我想获取特定文件夹的详细信息(包括该文件夹的一些字段和消息)。
在 Rails/RESTful 系统中,这将对应于资源上的index和show操作Folder;后者将接收id指定所需文件夹的参数。这个模式在“惯用的”GraphQL 中会是什么样子?
一种方法可能是每个操作都有一个字段:
type Query {
folders: [Folder]
folder(id: String!): Folder
}
Run Code Online (Sandbox Code Playgroud)
这里有一些重复,这看起来很混乱,并且使客户端更难自省和理解模式。
也许可以使用可为空的参数删除重复项:
type Query {
folder(id: String): [Folder]
}
Run Code Online (Sandbox Code Playgroud)
如果id传递了 an ,则仅Folder返回其详细信息(作为单项数组)。如果id是nil,那么它将获取所有文件夹的详细信息。这种重载似乎增加了一些隐藏的复杂性。
哪种方法是“更好的做法”?有没有更好的方法来模拟这种情况?