gpt4 book ai didi

node.js - 如何使用 Express.js 为 Restful API 构建代码?

转载 作者:数据小太阳 更新时间:2023-10-29 03:17:43 25 4
gpt4 key购买 nike

最近我一直致力于使用 Sails.js 构建 REST API我确定了我的应用程序所需的资源,我观察到的 (IMO) 是大多数框架(构建在 Express 之上)在处理单个资源时非常有效。

此外,我发现在大多数请求中,我需要操作的不仅仅是资源。例如,假设我们有以下结构和资源之间的链接:

Users -- user's metadata
`- Books -- book metadata
`- author

`- Gallery -- Images -- image metadata
`- Videos -- video metadata

上面的资源是:UsersBooksGalleryImagesVideos。每个资源将仅存储其子资源的 ID。我几乎所有情况下遇到的问题都是在插入新的子资源时。插入一本书后,我会找到它的所有者并添加对这本书的引用。

当我上传图片时,情况变得更糟。在这种情况下,在创建图像后,通过了解上传图像的用户,我创建了一个图库,将图像引用推送到图库中,并将图库的 ID 分配给该用户。

这里的问题是,我需要从用户 Controller 、图像 Controller 或任何 Controller 执行此操作并操纵所有资源。像这样,代码重复变得更高,事情变得复杂和丑陋(例如从 Images Controller 或 Gallery Controller 调用 Users 模型)。

当然,最简单的方法是摆脱 Gallery subResource 并直接向用户添加视频和照片。但这只是一个例子。

所以我想通过拥有这 4 个独立的模块(用户、画廊...)来构建我的应用程序,这些模块将提供它们的 API(即使它是一个基本的,即 CRUD)。然后将路由请求分派(dispatch)到适当的 Controller /处理程序,它将与我的模块交互并操纵它们。此外,当请求暗示单个资源时,我想自动分派(dispatch)到模块的处理程序(快捷方式 Controller /处理程序)。

这是扩展 REST API 的好模式吗(虽然这与 REST 无关,但与数据操作有关)?

如果是这样,是否有任何库或 Express 可用于创建模块?我将 mongoDb 与 mongoosejs 一起用于模型。

你能给我推荐一个应用程序的文件结构吗?

我还在这个问题上标记了 golang,因为我想知道是否有任何框架可以满足我的需求(可能是 beego、martini 或 goweb)。

我不打算问一个自以为是的问题,但我更希望有人已经对此有一些经验并且我厌倦了谷歌搜索解决方案,我得到的所有结果都是如何构建一个基本的rest api 我不知道什么框架,也没有真正解决获得大量应用程序生产准备的架构/可扩展性。

谢谢。

最佳答案

我自己是 sails.js 的新手,据我所知,您实际上是在寻找关联模型。

它们尚未完全实现,但您仍然可以将它们与 sails v0.10.0

一起使用

我认为当您的项目准备好投入生产时,关联将得到充分实现。

您可以在这里查看它们:https://github.com/balderdashy/sails/issues/124

这意味着你说的是这样的话

  • 视频属于画廊 1

  • 图片属于视频9

  • 画廊有很多视频和图片

您实际上并没有这样写 :) 那只是您的想法。

祝你好运();

关于node.js - 如何使用 Express.js 为 Restful API 构建代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21181386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com