首页
学习
活动
专区
圈层
工具
发布

什么是REST API

不同的HTTP方法可以在任何端点上使用,这些方法映射到应用程序的创建、读取、更新和删除(CRUD)操作: HTTP方法CRUD行为GET读取返回请求数据POST创建创建一个新记录PUT 或者 PATCH...然而,并没有严格的规则。端点URL、HTTP方法、body对象和响应类型可以随心所欲地实现。例如,POST、PUT和PATCH通常可以互换使用,如有必要任何一个都可以用来创建或更新记录。...Hello World示例 下面的Node.js代码使用Express框架创建了一个RESTful网络服务。一个单一的/hello/端点对HTTP GET请求作出响应。...为了避免兼容性问题,API通常是有版本的。例如,/2.0/user/123取代了/user/123。新的和旧的端点都可以保持活跃。不幸的是,这样就有必要维护多个历史API。...REST的难题导致Facebook创建了GraphQL--一种网络服务查询语言。把它看作是网络服务的SQL:一个单一的请求定义了你所需要的数据以及你希望它如何返回。

5.2K20

REST API 最佳实践

这是因为 HTTP 方法,例如 GET、POST、PUT、PATCH 和 DELETE,已经以动词形式执行基本的 CRUD(创建、读取、更新、删除)操作。...使用五种 HTTP 方法 POST,GET,PUT/PATCH,DELETE 可以提供 CRUD 功能(创建,获取,更新,删除)。 除了 POST 其他请求都具备幂等性(多次请求的效果相同)。...需要注意的是 POST 和 PUT 最大的区别就是幂等性,所以 PUT 也可以用于创建操作,只要在创建前就可以确定资源的 ID。 获取:使用 GET 方法获取资源。GET 请求从不改变资源的状态。...GET 是幂等的。GET 具有只读的含义。因此,你可以完美的使用缓存。 创建:使用 POST 创建新的资源(非幂等)。 更新:使用 PUT 更新整个资源,PATCH 将部分修改应用于资源。...因此,GET 将检索资源,POST 将创建资源,PUT 将更新整个资源,DELETE 将删除资源,PATCH 更新资源的局部数据。 5.用过滤、排序和分页请求数据 有时,API 的数据库可能非常大。

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Web前端】Web API:构建Web应用核心

    创建新用户 (​​createUser​​):接受 ​​userData​​ 参数,通过 POST 请求发送新用户的数据到服务器。...这种结构化的设计使得开发者能够清晰地理解和使用 API,便于进行数据请求、操作和管理。 1、API 端点 在 RESTful API 中,端点是客户端与服务器之间交互的具体路径。...POST:创建新的资源(如添加新数据)。 PUT/PATCH:更新现有资源(如修改已有数据)。 DELETE:删除资源(如移除不再需要的数据)。...可以看到 ​​fetch​​ 函数如何使用不同的方法来调用相应的 API 端点。...版本管理与更新:确保所用库和依赖项保持最新状态,以修补已知漏dong。 通过结合这些安全措施,开发者可以显著提高现代 API 的安全性,从而更好地保护敏感数据和维护系统稳定性。

    1K10

    NodeJS背后的人:Express

    目录下:edemo01.js: 第一个Express Demo案例,和Node HTTP模块创建服务方式类似: /** Express简单服务应用:*/ //1.导入express模块 const express...Express路由: 路由是网络通信中的一个核心概念:确保数据包能够以最有效的方式从源到达目的地; Express路由: 确定了应用程序如何响应客户端对特定端点的请求,每个路由可以有一个或多个回调处理函数...,当路由匹配时执行; 路由的组成: 端点是:URI/路径+特定的HTTP请求方法(GET\POST......:GET /users - 获取单个用户:GET /users/{userId} - 创建用户:POST /users - 更新用户:PUT /users/{userId} - 删除用户:DELETE...: body-parser 是Express 框架的一个中间件,用于解析HTTP请求体,使在处理 POST 请求时够方便地获取请求体中的数据; Express 4.16.0 版本之后,body-parser

    89310

    GPT3 探索指南(三)

    我们将涵盖的主题如下: 介绍 GPT Answers 介绍 Answers 端点 设置和测试 Express 为 GPT Answers 创建 API 端点 创建 GPT Answers...当您看到 Express 的欢迎页面时,您就可以继续进行。接下来,我们将为我们的 GPT Answers 应用程序创建 API 端点。...创建 API 端点 要创建 API 端点,请执行以下操作: 打开由express-generator创建的app.js文件。...您应该再次看到Welcome to E****xpress的消息。 我们创建的 API 端点接受 HTTP/answer。但由于它接受 HTTP POST,我们需要通过进行 POST 请求来测试它。...你可以从 getuikit.com 免费下载 UIkit,或者你可以使用一个托管版本,该版本可从 jsdeliver.com 获得,那就是我们将要使用的。

    40500

    13个构建RESTful API的最佳实践

    正确使用HTTP方法 我们已经讨论了你可以用来修改资源的可能的HTTP方法:GET,POST,PUT,PATCH,和 DELETE。...然而,许多开发者往往会滥用GET和POST,或者PUT和PATCH。通常情况下,我们看到开发者使用POST请求来检索数据。...现在我们得到: POST api.com/authors GET api.com/authors/3 假如我们想访问ID为3的作者写过的所有书,怎么办?...因此,应该实行驼峰格式的大小写约定。然而,不同的编程语言使用不同的命名约定[4]。 如何处理搜索、分页、过滤和排序 搜索、分页、过滤和排序等操作并不代表单独的端点。...总结 本文总结了13个构建RESTful API的最佳实践,分别是: 正确使用HTTP方法 命名约定 使用复数资源 正确使用状态码 遵循大小写约定 如何处理搜索、分页、过滤和排序 API版本 通过HTTP

    1.6K20

    如何在Ubuntu 14.04上运行解析服务器

    为了帮助其用户从服务转移,Parse发布了一个名为Parse Server的后端的开源版本,可以部署到运行Node.js和MongoDB的环境中。...通过在创建Droplet时将此脚本添加到其用户数据,MongoDB也可以自动安装在新CVM上。 使用sudo用户和MongoDB 配置系统后,请返回本指南并继续。...我们还将安装build-essentialmetapackage,它提供了一系列可能在以后有用的开发工具,以及用于从GitHub检索项目的Git版本控制系统: sudo apt-get install...在这种情况下,Parse Server API调用的端点默认为: http://your_server_IP/parse 在另一个终端中,您可以使用它curl来测试此端点。...通过发送POST带有X-Parse-Application-Id标头的请求来标识应用程序以及格式化为JSON的一些数据来创建记录: curl -X POST \ -H "X-Parse-Application-Id

    3.4K10

    HTMX简介:无需JavaScript的动态HTML

    可编辑版本作为一个表单元素到达,其中包含x-put属性,该属性标识PUT HTML方法和要使用的端点。 问题变成,HTMX如何实现这种“交换”和后续的PUT,而不做任何JavaScript呢?...为了了解它是如何工作的,让我们看一个使用Express和Pug HTML模板引擎的TODO示例。这个例子是经典TODO应用程序的实现。...HTMX客户端将根据属性将它们放在它们应该在的位置,并处理发送由服务消费的适当数据。 负责接收数据的端点可以像典型的端点一样操作,区别在于响应应该是必要的HTMX。...例如,在Listing 4中,你可以看到Express服务器如何处理POST以创建新的待办事项。 Listing 4....处理待办事项创建 app.post('/todos', (req, res) => { const { todo } = req.body; const newTodo = { id:

    1.5K10

    Nest.js Controller 解析:探索路由和请求处理的强大功能

    每个控制器 它会有多个路由,不同路由对应不同的业务请求处理。在 Nest  中, 创建一个 控制器,应该使用类 和 装饰器 , 装饰器会使类相关联的数据的关联起来,将请求绑定到相应的控制器。...路由的 形成 :控制器装饰器前缀@Controller('user')  +  请求方法装饰器结合 @Get('getDeatil')将形成路由映射user/getDeatail如何进行路由分组呢?...通过 HTTP 请求方法装饰器  修饰方法,它会方法告诉 Nest 为 HTTP 请求的特定端点创建处理程序。栗子中,getUserInfo  方法被 @Get 所修饰,所以它是一个 Get 请求。...1.3.2 请求参数装饰器通过对客户端发起的请求参数做解析处理,Nest 提供的访问请求对象 默认方式为 express .Nest express...此外, @All()定义处理所有这些的端点。1.3.3 路由通配符支持基于模式的路由。  例如,星号用作通配符,将匹配任何字符组合。

    73950

    实现前后端分离开发:构建现代化Web应用

    API定义了前端如何与后端进行数据通信。通常,API使用RESTful风格,通过HTTP请求来实现。前端通过HTTP请求(如GET、POST、PUT、DELETE)向后端请求数据和发送数据。...以下是API的一个简单示例: GET请求获取用户信息: GET /api/users/123 POST请求创建新用户: POST /api/users PUT请求更新用户信息: PUT /api/users...每个资源都有一个唯一的URL,可以通过GET、POST、PUT和DELETE等HTTP方法进行操作。...例如: 获取用户信息: GET /api/users/123 **创建新用户 :** POST /api/users 更新用户信息: PUT /api/users/123 删除用户: DELETE /api...在我们的示例中,我们可以定义以下API端点: 获取任务列表:GET /api/tasks 获取单个任务:GET /api/tasks/:id 创建新任务:POST /api/tasks 更新任务信息:PUT

    2K10

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    (操作或方法):最常见的是GET、POST、PUT、PATCH和DELETE。...REST以资源为导向,资源由URI表示:/library/ 端点(endpoint)是动词和URI的组合,例如:GET: /books/ 端点可以理解为对资源执行的操作。...高一层次来看,动词映射到CRUD操作:GET表示读取,POST表示创建,PUT和PATCH表示更新,DELETE表示删除 响应状态由其状态码指定:1xx 表示信息, 2xx 表示成功, 3xx 表示重定向...我将注意到:param 是一个URI参数(如ID或缩写)的占位符,你第一个想法可能是创建类似于这个的端点: GET: /books/:slug/generateBookCover/ 但是,在这里GET方法在语法上足以说明我们正在获取...所以,让我们只使用: GET: /books/:slug/bookCover/ 同样,对于创建新书的端点: #Don’t do this POST: /books/createNewBook/ #Do

    1.4K40

    【译】构建RESTful API的13种最佳实践

    可以在 RESTful API 中访问以下 HTTP 操作: GET 请求:检索资源 POST 请求:创建资源或将信息发送到 API PUT 请求:创建或替换资源 PATCH 请求:更新现有资源 DELETE...本文为你提供了 13 种最佳实践的可行清单。让我们来探索! 1.正确使用 HTTP 方法 我们已经讨论了可用于修改资源的 HTTP 方法:GET,POST,PUT,PATCH 和 DELETE。...尽管如此,许多开发人员还是倾向于滥用 GET 和 POST 或 PUT 和 PATCH。通常,我们看到开发人员使用 POST 请求来检索数据。...但是,不同的编程语言使用不同的命名约定。 6.如何处理搜索,分页,过滤和排序 搜索,分页,过滤和排序等操作并不代表单独的端点。这些操作可以通过使用随 API 请求提供的查询参数来完成。...幸运的是,许多 API 项目都带有内置的搜索、分页、过滤和排序功能。这将为你节省很多时间。 7.API 版本控制 我不常看到这一点,但这是对你的 API 进行版本调整的最佳实践。

    2.2K10

    基于Node.js的Express框架

    req(请求)和 res(响应)与 Node 提供的对象完全相同,所以您可以在不涉及 Express 的情况下调用 req.pipe()、req.on('data', callback) 和要执行的其他任何函数...() 函数将应用层中间件绑定到应用程序对象的实例,其中 METHOD 是中间件函数处理的请求的小写 HTTP 方法(例如 GET、PUT 或 POST),更多查看官方文档。...app.get('/user/:id', function (req, res, next) { res.send('USER'); }); 六、路由 路由表示应用程序端点 (URI) 的定义以及端点响应客户机请求的方式...Express 支持对应于 HTTP 方法的以下路由方法:get、post、put、head、delete、options、trace、copy、lock、mkcol、move、purge、propfind...,用于定义可以在其中提出请求的端点。

    6K20

    Express框架快速入门

    server start") }) 很简单吧,express创建http接口,相比Node.js的http模块来说也太方便了吧,只需要调用get()方法,然后里面传入请求的路径和回调函数就好了。...Express基本路由 路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。...路由是由一个 URI、HTTP 请求(GET、POST等)和若干个句柄组成,它的结构如下: app.METHOD(path, [callback...], callback) , app 是 express...路由路径和请求方法一起定义了请求的端点,它可以是字符串、字符串模式或者正则表达式。但查询字符串不是路由路径的一部分。...app 对象 使用 app.use() 和 app.METHOD(), 其中, METHOD 是需要处理的 HTTP 请求的方法,例如 GET, PUT, POST 等等,全部小写。

    5.8K10

    08_Express框架

    app.get('/', (req, res, next) => { next(); }); 同一个请求路径可以设置多个中间件,表示对同一个路径的请求进行多次处理,默认情况下Express会从上到下依次匹配中间件...模块化路由 可以使用app.get()方法和app.post()方法来实现简单的路由功能,但没有对路由进行模块化管理。...3.1 模块化路由的基本使用 express.Router()方法用于创建路由对象route,然后使用route.get()和route.post()来注册当前模块路由对象下的二级路由,这就是一个简单的模块化路由...下的 POST 请求 route对象创建成功后,使用app.use()注册route模块化路由。...(3000); console.log('服务器启动成功'); 4 Express接收请求参数 使用原生Node.js处理GET和POST请求参数是非常麻烦的,例如,为了获取GET请求参数,需要使用url

    49110

    【云原生】给我 10 分钟,带你上手一个 AWS serverless web server

    在本文中,我将向你展示如何在几分钟内启动并运行 AWS Lambda、Amazon API Gateway 和 AWS Amplify。...Amazon API Gateway 是一项AWS服务,用于创建、发布、维护、监控和保护任意规模的REST、HTTP 和WebSocket API。...API 开发人员可以创建能够访问AWS 或其他Web 服务以及存储在AWS 云 中的数据的API AWS Amplify 是一组专门构建的工具和功能,使前端Web 和移动开发人员可以快速、轻松地在AWS...N CLI 为我们创建了一些东西,如下: API 端点 Lambda 函数 使用 Serverless Express 的 Web 服务器 /items 目录下根据不同方法生成的一些样板代码 接下来,让我们打开代码.../ get request const items = await API.get('myapi', '/items') // post with data const data = { body:

    75010

    13 个设计 REST API 的最佳实践

    一个端点可以被解释为对某种资源进行的某个动作。比如, POST: /articles 可能代表“创建一个新的 article”。...在业务领域,我们常常可以将动词和 CRUD(增删查改)关联起来:GET 代表查,POST代表增,PUT 和 PATCH 代表改(注: PUT 通常代表整体更新,而 PATCH 代表局部更新),而 DELETE...比如,如果一个 POST 类型的端点返回 201 Created,那么所有的 POST 端点都应返回同样的状态码。这样做的好处在于,调用者无需在意端点返回的状态码取决于某种特殊条件,也就形成了一致性。...使用 querystring 来完成筛选和分页功能 大部分情况下,一个简单的端点没有办法满足负责业务场景。...但这样做的问题是,通常,web 框架并不是针对构建 REST API 服务而专门存在的,换言之,Flask 和 Express 是两个十分通用的框架,但它们并非特别适合用于构建 REST API 服务。

    3.9K20
    领券