首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

13个构建RESTful API最佳实践

在今天开发环境,RESTful API仍然是服务和消费数据最佳选择之一。 但你是否考虑过学习行业标准?设计一个RESTful API最佳实践是什么?...正确使用HTTP方法 我们已经讨论了你可以用来修改资源可能HTTP方法:GET,POST,PUT,PATCH,和 DELETE。...因此,你会调用以下端点:GET api.com/authors 。 当你阅读请求时,你无法判断API响应将只包含一个或所有作者。出于这个原因,API端点应该使用复数资源。...挑选一个支持RESTful API最佳实践框架很重要。 对于Node.js,后端开发人员喜欢使用Express.js[6],而对于Python,Falcon[7]是一个不错选择。...总结 本文总结了13个构建RESTful API最佳实践,分别是: 正确使用HTTP方法 命名约定 使用复数资源 正确使用状态码 遵循大小写约定 如何处理搜索、分页、过滤和排序 API版本 通过HTTP

1.3K20

【译】构建RESTful API13种最佳实践

设计 RESTful API 最佳实践是什么?从理论上讲,任何人都可以在不到五分钟时间内快速启动数据 API——无论是 Node.js,Golang 还是 Python。...本文为你提供了 13 种最佳实践可行清单。让我们来探索! 1.正确使用 HTTP 方法 我们已经讨论了可用于修改资源 HTTP 方法:GET,POST,PUT,PATCH 和 DELETE。...因此,你将调用以下端点:GET api.com/authors。 当你读取请求时,你无法判断 API 响应是否只包含一个或所有作者。因此,API 端点应该使用复数资源。...但是,不同编程语言使用不同命名约定。 6.如何处理搜索,分页,过滤和排序 搜索,分页,过滤和排序等操作并不代表单独端点。这些操作可以通过使用API 请求提供查询参数来完成。..., "more_info": "api.com/docs/errors/24801" } 在此示例,服务器返回状态代码和人类可读消息

1.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

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

但是,我也曾遇到过一些让 REST 蒙羞 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致模式、插入端点中动词......因此我决定写篇文章分享一下,在设计 REST API最佳实践。以下是关于设计优秀REST API 一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....在处理应用程序/编程客户端(例如,通过Pythonrequests库与您API交互另一个服务/API)时,这一点尤为重要——其中一些客户端依赖于此标头来准确解码响应。 3....使用专门针对REST API网络框架 作为最后一个最佳实践,让我们讨论这个问题:如何在您API实际应用最佳实践?大多数时候,您希望建立一个快速API,以便一些服务可以相互交互。...各种语言中已经出现了新框架, 它们专门用于构建REST APIs。它们能够帮助您轻松遵循最佳做法,并提高生产力。 在Python, 我找到过其中之一优秀API框架就是Falcon。

30840

前端要知道RESTful API架构风格

前端程序员在开发完页面后总是要对接口,跟后端联调有时候还占用蛮大时间,那么你了解你和后端对接口都是什么风格吗,你们公司接口设计的如何,你使用愉快吗?...自己在写Node服务时你遇到如何定义好接口问题吗?下面介绍一种API架构风格,也是目前主流API设计风格,你或许一直在使用。 ? RESTful API 示例 REST是什么?...自描述消息。每个请求或响应必须提供足够信息让接受者理解,这些消息是指比如媒体类型、HTTP方法、是否缓存 超媒体作为应用状态引擎。...RESTful API 设计最佳实践 请求设计规范 URI 使用名词,尽量用复数,如/users URI 使用嵌套标识关联关系,如 /users/12/repos/5 使用正确HTTP方法,如GET/...为集合提供过滤、排序、分页等功能。 用查询字符串或HTTP首部进行内容协商,指定返回结果数据格式。 及时更新文档,每个接口都有对应说明。 你公司使用是RESTful API吗?

85730

13 个设计 REST API 最佳实践

了解应用于 REST 之上 HTTP 知识 如果你想要构建设计优良 REST API,了解一些关于 HTTP 协议基础知识是很有帮助,毕竟磨刀不误砍材工。...但是,就 REST API 设计本身而言,所涉及到 HTTP 知识要点大概包含以下几条: HTTP 包含动词(或方法): GET、POST、PUT、PATCH 还有 DELETE 是最常用。...避免在 URI 中使用动词 如果你理解了第 1 条最佳实践所传达意思,那么你现在就会明白不要将动词放入 REST API URI 。...采用 REST API 定制化框架 作为最后一个最佳实践,让我们来探讨这样一个问题:你如何在 API 实施,实践最佳实践呢?...在 Python ,我发现最好 API 框架之一是 Falcon。它与 Flask 一样简单,非常高效,十分适合构建 REST API 服务。

3.5K20

REST API 最佳实践

在这篇文章,我将带你了解创建 REST API 时需要遵循一些最佳实践。这将帮助你创建最好 API,并使你 API 用户使用起来更容易。 0.什么是 REST API?...1.REST API 设计建议 1.用名词表示资源 当你设计一个 REST API 时,你不应该在端点路径中使用动词。端点应该使用名词,表示它们各自作用。...如果发生这种情况,从这样数据库检索数据可能非常缓慢。 过滤、排序和分页都是可以在 REST API 集合上执行操作。这样只能检索、排序和排列必要数据,并将其分页,以防服务器请求过载。...12.使用 HTTP 状态码 你应该在对你 API 请求响应始终使用常规 HTTP 状态代码。这将帮助你用户知道发生了什么——请求是否成功,或者是否失败,或者其他情况。...15.使用 HATEOAS API 使用者未必知道,URL 是怎么设计。一个解决方法就是,在响应给出相关链接,便于下一步操作。这样的话,用户只要记住一个 URL,就可以发现其他 URL。

1.5K20

Microsoft REST API指南

Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...文档原则认为REST API应该遵循一致设计指导原则,能为开发人员提供最流畅体验,令使用它们变得简单和直观。...尽可能地遵循行业普遍接受 REST/HTTP 最佳实践。 让所有应用开发者都可以轻松通过REST接口访问Micosoft服务。...允许Service开发者利用其他Service基础上来开发一致REST API端点。 允许合作伙伴(例如,非Micosoft团队)使用这些准则来设计自己 REST API。...如果服务不支持按_$orderBy_表达式命名属性排序,则服务必须按照“响应不支持请求”部分定义错误消息进行响应。 9.7.

4.5K10

我们应该重新定义REST吗?

相比之下,我们应该改用“HTTP API”和“hypermedia API”这两个说法,使用它们可以更好地区分两种不同 Web 服务编程接口设计。...例如,在服务端数据库持久化一个数据实体将以和原始格式不同格式编码在客户端 - 服务器消息。 自描述消息:请求和响应消息必须包含对其解码所需所有信息。...——Hadi Hariri),《银弹症候群》 仔细检查会发现,大多数所谓 REST API 仅仅是 HTTP API。它们只是遵循了 HTTP 最佳实践和约定。...例如,建议使用 HTTP 动词(例如 GET、PUT 和 POST)来提示对资源执行操作类型HTTP 规范,而不是 REST 约束。使用这些方法不是 RESTful。...这些 Web 服务紧密遵循 HTTP 规范列出 HTTP 请求和响应消息组成最佳实践。它们充分利用了 HTTP 原生特性来进行缓存控制、内容协商和身份验证。

61210

RESTful API 设计最佳实践

哪些不涉及资源操作URL呢?实现分页和版本控制最好方法是什么?因为有太多疑问,设计RESTful API变得很棘手。...在这篇文章,我们来看一下RESTful API设计,并给出一个最佳实践方案。...RESTful Web服务器为新员工生成ID,在其内部模型创建员工,并向客户端发送响应。这个响应HTTP头部包含一个Location字段,指示创建资源可访问URL。...请求HTTP body包含要更新属性值(21号员工新名称“Bruce Wayne”)。 REST服务器更新ID为21员工名称,并使用HTTP状态码200表示更改成功。...在响应参数添加浏览其它API链接 理想情况下,不会让客户端自己构造使用REST APIURL。让我们思考一个例子。 客户端想要访问员工薪酬表。

1.3K60

GitHub Top 45:新手入门 Python,值得推荐优质资源!

对于 Python 初学者,我们推荐以下这些课程: REST API使用 Python,Flask,Flask-RESTful 和 Flask-SQLAlchemy 构建专业 REST API [...使用 Django 构建 REST API 测试驱动方法:第一部分 这篇文章将介绍如何利用 Django 来构建一个 REST API 测试驱动,并详细介绍了每个步骤。...API 设计原则:先思考再编码 API 是定义应用程序接口通用术语,换句话说,就是用户(人或机器)与程序交互接口。...在 Web 开发世界API 通常是一个网站,其中包含一系列端点,用于响应客户端请求和结构化文本数据。...这篇文章将告诉你为什么以及如何设计一个正确 API,如何将自己思想植入到 API 设计来构建属于你自己 API

1.3K20

Python & 机器学习项目集锦 | GitHub Top 45

对于Python初学者,我们推荐以下这些课程: REST API使用 Python,Flask,Flask-RESTful 和 Flask-SQLAlchemy 构建专业 REST API [12,602...Python自动化操作 ⑪ 如何使用TwilioPython和Google自动化婚礼进程 作者:Thomas Curtis 链接: https://www.twilio.com/blog/2017...Django构建REST API测试驱动方法:第一部分 这篇文章将介绍如何利用Django来构建一个REST API测试驱动,并详细介绍了每个步骤。...在Web开发世界API通常是一个网站,其中包含一系列端点,用于响应客户端请求和结构化文本数据。...这篇文章将告诉你为什么以及如何设计一个正确API,如何将自己思想植入到API设计来构建属于你自己API

1.7K40

RESTful API 设计最佳实践

实现分页和版本控制最好方法是什么?因为有太多疑问,设计RESTful API变得很棘手。在这篇文章,我们来看一下RESTful API设计,并给出一个最佳实践方案。...RESTful Web服务器为新员工生成ID,在其内部模型创建员工,并向客户端发送响应。这个响应HTTP头部包含一个Location字段,指示创建资源可访问URL。...请求HTTP body包含要更新属性值(21号员工新名称“Bruce Wayne”)。 REST服务器更新ID为21员工名称,并使用HTTP状态码200表示更改成功。...在响应参数添加浏览其它API链接 理想情况下,不会让客户端自己构造使用REST APIURL。让我们思考一个例子。 客户端想要访问员工薪酬表。...更好方案是在响应参数添加一个 links字段,让客户端可以自动变更。 请求: GET /employees/ 响应: //...

1.4K10

API架构】REST API 设计原则和最佳实践

这是一个完整图表,可以轻松理解 REST API 原理、方法和最佳实践。 现在,让我们从每个盒子原理开始详细说明它。...最佳实践 现在,让我们换个角度来了解 REST 基本最佳实践,这是每个工程师都应该知道。 保持简单和细粒度:创建模拟系统底层应用程序域或系统数据库架构 API。...服务通过在响应(如 Cache-Control、Expires、Pragma、Last-Modified 等)上设置标头来提高缓存能力 分页REST 原则之一是连通性——通过超媒体链接。...当链接在响应返回时,API 变得更具自我描述性。对于支持分页响应返回集合,“first”、“last”、“next”和“prev”链接至少是有益。...为您客户设计,而不是为您数据设计。 - 复数:普遍接受做法是始终在节点名称中使用复数形式,以保持您 API URI 在所有 HTTP 方法中保持一致。

1.4K10

《ASP.ENT Core 与 RESTful API 开发实战》-- 读书笔记(第1章)

HTTP 协议来传递浏览器与服务器之间请求与响应 HTTP 协议采用请求/响应模型 HTTP 协议采用明文传输数据,这种方式并不安全,所以后来设计了 HTTPS 协议 统一资源定位符(URL)代表网络上一个特定资源...HTTP 消息头:请求或响应相关属性、配置、对消息正文描述等 空行:指明消息头已经发送完毕 消息正文:包含请求数据,或响应中资源表述 请求起始行包括: HTTP 方法 请求目标 HTTP 版本...4xx:客户端错误:请求包含语法错误或请求内容不正确 5xx:服务端错误:服务器在处理请求过程中发生了错误 1.3 REST 最佳实践 首先,在实现 RESTful 系统时,应正确地使用 HTTP...方法、HTTP 消息头和 HTTP 状态码 除了原则以外,在设计资源 URI 时也应该注意以下原则: 使用名词复数表示一个资源集合 使用斜线 ”/“ 用来表示资源之间层次关系 对资源增删改查等操作名称不应该包含在...URL 如果一个操作无法对应到资源某个操作上,此时可以适当地在 URI 包含动词,但仍然应该基于一个资源标识符 查询字符串可以用来对资源进行筛选、搜索或分页查询 URI 应使用小写字母 URI

87610

RESTful API 最佳实践

由于他是HTTP协议(1.0版和1.1版)主要设计者、Apache服务器软件作者之一、Apache基金会第一任主席,所以REST原则迅速流行起来。...因为按照RESTful架构可以充分利用HTTP协议带给我们各种功能,算是对HTTP协议使用最佳实践,还有一点就是可以使软件架构设计更加清晰,可维护性更好,但是并不是所有情况都需要完全遵守REST原则...,也可使用动词,例如:search没有对应HTTP方法,可以在路径中使用search,更加直观; URI名词表示资源集合,使用复数形式; 虽然/在URI中表达层级,但是避免为了追求REST导致层级过深...这些状态码可以帮助API消费者用来路由它们获取到响应内容。整理了一个你肯定会用到状态码列表: 200 OK – 对成功GET、PUT、PATCH或DELETE操作进行响应。...在进行分页查询时可以返回下一页URI,如果没有说明服务器已经取到最后一条数据了,客户端可以减少不必要请求以及URI构造,建议在分页情况下使用

1.8K31

我们必须要知道RESTful服务最佳实践

我们必须要知道RESTful服务最佳实践 本章导读: REST来源 REST是什么,应该知道6大原则 C-S架构 无状态 统一接口 一致数据格式 自我描述信息 超媒体即应用状态引擎...REST是什么,应该知道6大原则 REST之父Roy Fielding在论文中阐述REST架构6大原则。 1. C-S架构 数据存储在Server端,Client端只需使用就行。...如请求一条微博信息,服务端响应信息应该包含这条微博相关其他URL,客户端可以进一步利用这些URL发起请求获取感兴趣信息,再如分页可以从第一页返回数据获取下一页URT也是基于这个原理 4.系统分层...比如服务端可以返回一些 Javascript 代码让客户端执行,去实现某些特定功能。 提示:REST架构设计准则,只有按需编码为可选项。...合理使用query parameter 在请求数据时,客户端经常会对数据进行过滤和分页等要求,而这些参数推荐采用HTTP Query Parameter方式实现 比如设计一个最近登陆所有用户 https

1.2K30

flask 应用程序编程接口(API)最后一节

REST作为API设计基础 有些人可能会强烈反对反对提到/ translate和其他JSON路由是API路由。其他人可能会同意,但也会认为它们是一个设计糟糕API。...那么一个精心设计API有什么特点,为什么上面的JSON路由不是一个好API路由呢? 该架构,Dr。你可能听说过REST API。...Fielding和其他REST纯粹主义者对评判一个API是否是REST API有严格规定,但软件行业在实际使用引用REST是很常见。...自描述性消息意味着在客户端和服务器之间交换请求和响应必须包含对方需要所有信息。作为一个典型示例,HTTP请求方法用于指示客户端希望服务器执行操作。...然后,服务器查看自身格式列表并使用匹配客户端格式列表最佳格式进行响应。 我想做是修改类别应用错误处理器,使它们能够根据客户端格式首选项对返回内容是使用HTML或JSON进行内容协商。

5K10

Koa2+MongoDB+JWT实战--Restful API最佳实践

通常我们为 Web API 使用 RESTful 设计REST 概念分离了 API 结构和逻辑资源,通过 Http 方法GET, DELETE, POST 和 PUT等 来操作资源。...本篇文章是结合我最近一个项目,基于koa+mongodb+jwt来给大家讲述一下 RESTful API 最佳实践。 RESTful API 是什么?...分层系统(Layered System) 按需代码(Code-On-Demand) 看完了 REST 六个约束,下面让我们来看一下行业内对于RESTful API设计最佳实践总结。...最佳实践 请求设计规范 URI 使用名词,尽量使用复数,如/users URI 使用嵌套表示关联关系,如/users/123/repos/234 使用正确 HTTP 方法,如 GET/POST/PUT.../DELETE 响应设计规范 查询 分页 字段过滤 如果记录数量很多,服务器不可能都将它们返回给用户。

9.1K42

面试官:你连RESTful都不知道我怎么敢要你?

如请求一条微博信息,服务端响应信息应该包含这条微博相关其他URL,客户端可以进一步利用这些URL发起请求获取感兴趣信息,再如分页可以从第一页返回数据获取下一页URT也是基于这个原理。...比如服务端可以返回一些 Javascript 代码让客户端执行,去实现某些特定功能。提示:REST架构设计准则,只有按需编码为可选项。...03 RESTful7个最佳实践 1....(ps:有点linux设计味道哦,没有返回消息就是最好消息,表示已经成功了)服务段向用户返回这些状态码并不是一个强制性约束。简单点说你可以指定这些状态,但是不是强制。...合理使用query parameter 在请求数据时,客户端经常会对数据进行过滤和分页等要求,而这些参数推荐采用HTTP Query Parameter方式实现 比如设计一个最近登陆所有用户 https

1.1K20
领券