尝试获得一些专家的意见和方向:
我们正在探索我们的客户的一些RestAPI,以获取数据并在他们端构建数据库。一些人使用sql,一些人使用nosql数据存储。
我们应该如何设计端点?是具有嵌入式引用对象的大型对象,还是用于单独对象的单独端点?那参考资料呢?在我们查看模式时,有没有什么需要牢记的最佳实践?
例如:电影有图像电影有类似的电影电影也有演员
另外,我如何评估新端点是否有意义,或者在现有端点中嵌入对象是否更好?
好奇地想听一些想法和推理。
发布于 2019-01-08 17:04:38
最基本的问题是:你会一直要求完整的数据集(图像,相似的电影,演员,...)或者你想选择只得到它的一部分?第二个问题是:数据集有多大重叠?(演员可以播放>100部电影,检索他的信息作为每部电影信息的一部分是没有意义的)
如果你总是想要得到所有的东西,那么就去找嵌入了引用对象的大对象(只需记住使用压缩)。如果网络带宽有问题,这种方法应该更有效。
如果你想拥有更大的灵活性,最好选择单独的端点。这将导致更多的网络流量。如果你要选择这种方法,你应该考虑使用某种缓存。
另一方面,您可以创建为/movie
返回基本信息,但为/movie?include=images,cast
和/movie?include=all
返回扩展数据的混合。但这将需要更多的开发工作。
也可能有第四种选择。你听说过GraphQL (https://graphql.org/)吗?它允许定义要检索的数据。
https://stackoverflow.com/questions/54087679
复制相似问题