首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAMstack约定是否与RESTful API设计兼容?

JAMstack约定是否与RESTful API设计兼容?
EN

Stack Overflow用户
提问于 2020-09-29 14:03:31
回答 1查看 61关注 0票数 0

最近我在Netlify上制作了很多快速原型。我喜欢这个服务,因为它易于安装和部署。但是,我经常遇到他们围绕API端点的JAMstacky约定与我自己的RESTful API设计背景之间的冲突。

具体来说,假设我正在构建一个基本的CRUD API,在其中我可以创建、获取一个、获取所有,并更新某些资源类型。假设是一个User。如果我是从RESTful的角度设计这些端点,它将如下所示:

代码语言:javascript
复制
POST /users       -> Create a user
GET  /users       -> Fetch all users
GET  /users/{id}  -> Fetch one user
PUT  /users/{id}  -> Update a user

现在,如果我在AWS上设置它,也许使用无服务器框架,那么每个端点都将是它们自己的lambda。但是Netlify没有提供这样的配置选项。大部分都很不错。我讨厌配置。但是,使用Netlify很难实现这些端点。

特别是在这种情况下,Netlify会自动创建与文件名匹配的端点。因此,如果您有一个名为users.js的文件,就会创建一个/users端点。问题是,该文件将用于/users的每一个可能的排列。每个HTTP方法。每条地铁。他们都会去看这首歌。因此,为了实现RESTful的API设计,我必须把所有的东西都放在一个lambda中,并且本质上使它成为一个路由器。这似乎挫败了整个无服务性的想法。

因此,通常当您阅读Netlify示例时(这些示例声称遵循JAMstack模式(我不太熟悉)),它们不使用RESTful端点。相反,他们倾向于做这样的事情:

代码语言:javascript
复制
POST /create-user         -> Create a user
GET  /fetch-users         -> Fetch all users
GET  /fetch-user?id={id}  -> Fetch one user
POST /update-user         -> Update a user

这在某种程度上是一个Netlify问题,在某种程度上是一个更大的关于JAMstack模式的问题。JAMstack是否有一些固有的特性,使其与REST不兼容?是否有不同的约定来取代REST来代替Netflify/ Are堆栈项目?

EN

回答 1

Stack Overflow用户

发布于 2020-09-30 15:31:26

“JAMstack的固有特性是否使其与REST不兼容?”我会说不,因为这没有关系。您没有使用Jam堆栈构建API。您正在使用一个服务(Netlify),它支持与站点其他部分一起操作的无服务器功能。记住,Netlify无服务器函数只是一个选项。您可以设置您自己的AWS设置,并支持您想要的机制,并且仍然与您的Jam堆栈站点的其他部分一起使用它。我喜欢Netlify的无服务器的东西,但是它不适用于100%的用例。

我想我的tl;dr is - Netlify试图让构建Jam堆栈站点的人简化服务器,但它并不能涵盖所有的用例。当它没有,你仍然可以使用你自己的解决方案和你的网站。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64121274

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档