在今天的开发环境中,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
设计 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" } 在此示例中,服务器返回状态代码和人类可读的消息。
但是,我也曾遇到过一些让 REST 蒙羞的 API 例子,错误使用 HTTP 状态码、纯文本响应、不一致的模式、插入端点中动词......因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....在处理应用程序/编程客户端(例如,通过Python中的requests库与您的API交互的另一个服务/API)时,这一点尤为重要——其中一些客户端依赖于此标头来准确解码响应。 3....使用专门针对REST API的网络框架 作为最后一个最佳实践,让我们讨论这个问题:如何在您的API中实际应用最佳实践?大多数时候,您希望建立一个快速的API,以便一些服务可以相互交互。...各种语言中已经出现了新框架, 它们专门用于构建REST APIs。它们能够帮助您轻松遵循最佳做法,并提高生产力。 在Python中, 我找到过其中之一优秀API框架就是Falcon。
前端程序员在开发完页面后总是要对接口的,跟后端联调有时候还占用蛮大的时间的,那么你了解你和后端对的接口都是什么风格吗,你们公司接口设计的如何,你使用愉快吗?...自己在写Node服务时你遇到如何定义好接口的问题吗?下面介绍一种API架构风格,也是目前主流的API设计风格,你或许一直在使用。 ? RESTful API 示例 REST是什么?...自描述的消息。每个请求或响应必须提供足够的信息让接受者理解,这些消息是指比如媒体类型、HTTP方法、是否缓存 超媒体作为应用状态引擎。...RESTful API 设计最佳实践 请求设计规范 URI 使用名词,尽量用复数,如/users URI 使用嵌套标识关联关系,如 /users/12/repos/5 使用正确的HTTP方法,如GET/...为集合提供过滤、排序、分页等功能。 用查询字符串或HTTP首部进行内容协商,指定返回结果的数据格式。 及时更新文档,每个接口都有对应的说明。 你的公司使用的是RESTful 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 服务。
在这篇文章中,我将带你了解创建 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。
Microsoft REST API指南 摘要 Microsoft REST API指南作为一种设计原则,鼓励应用程序开发人员通过RESTful HTTP接口访问资源。...文档原则认为REST API应该遵循一致的设计指导原则,能为开发人员提供最流畅的体验,令使用它们变得简单和直观。...尽可能地遵循行业普遍接受的 REST/HTTP 最佳实践。 让所有应用开发者都可以轻松的通过REST接口访问Micosoft服务。...允许Service开发者利用其他Service的基础上来开发一致的REST API端点。 允许合作伙伴(例如,非Micosoft团队)使用这些准则来设计自己的 REST API。...如果服务不支持按_$orderBy_表达式中命名的属性排序,则服务必须按照“响应不支持的请求”部分中定义的错误消息进行响应。 9.7.
相比之下,我们应该改用“HTTP API”和“hypermedia API”这两个说法,使用它们可以更好地区分两种不同的 Web 服务编程接口设计。...例如,在服务端数据库中持久化的一个数据实体将以和原始格式不同的格式编码在客户端 - 服务器消息中。 自描述消息:请求和响应消息必须包含对其解码所需的所有信息。...——Hadi Hariri),《银弹症候群》 仔细检查会发现,大多数所谓的 REST API 仅仅是 HTTP API。它们只是遵循了 HTTP 最佳实践和约定。...例如,建议使用 HTTP 动词(例如 GET、PUT 和 POST)来提示对资源执行的操作类型的是 HTTP 规范,而不是 REST 约束。使用这些方法的不是 RESTful。...这些 Web 服务紧密遵循 HTTP 规范中列出的 HTTP 请求和响应消息组成的最佳实践。它们充分利用了 HTTP 的原生特性来进行缓存控制、内容协商和身份验证。
对于 Python 的初学者,我们推荐以下这些课程: REST API:使用 Python,Flask,Flask-RESTful 和 Flask-SQLAlchemy 构建专业的 REST API [...使用 Django 构建 REST API 的测试驱动方法:第一部分 这篇文章将介绍如何利用 Django 来构建一个 REST API 的测试驱动,并详细介绍了每个步骤。...API 的设计原则:先思考再编码 API 是定义应用程序接口的通用术语,换句话说,就是用户(人或机器)与程序的交互接口。...在 Web 开发世界中,API 通常是一个网站,其中包含一系列端点,用于响应客户端请求和结构化文本数据。...这篇文章将告诉你为什么以及如何设计一个正确的 API,如何将自己的思想植入到 API 的设计中来构建属于你自己的 API。
对于Python的初学者,我们推荐以下这些课程: REST API:使用 Python,Flask,Flask-RESTful 和 Flask-SQLAlchemy 构建专业的 REST API [12,602...Python中的自动化操作 ⑪ 如何使用Twilio、Python和Google自动化婚礼的进程 作者:Thomas Curtis 链接: https://www.twilio.com/blog/2017...Django构建REST API的测试驱动方法:第一部分 这篇文章将介绍如何利用Django来构建一个REST API的测试驱动,并详细介绍了每个步骤。...在Web开发世界中,API通常是一个网站,其中包含一系列端点,用于响应客户端请求和结构化文本数据。...这篇文章将告诉你为什么以及如何设计一个正确的API,如何将自己的思想植入到API的设计中来构建属于你自己的API。
哪些不涉及资源操作的URL呢?实现分页和版本控制的最好方法是什么?因为有太多的疑问,设计RESTful API变得很棘手。...在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案。...RESTful Web服务器为新员工生成ID,在其内部模型中创建员工,并向客户端发送响应。这个响应的HTTP头部包含一个Location字段,指示创建资源可访问的URL。...请求的HTTP body中包含要更新的属性值(21号员工的新名称“Bruce Wayne”)。 REST服务器更新ID为21的员工名称,并使用HTTP状态码200表示更改成功。...在响应参数中添加浏览其它API的链接 理想情况下,不会让客户端自己构造使用REST API的URL。让我们思考一个例子。 客户端想要访问员工的薪酬表。
1— 思路 这里的需求是什么? 首先来看,女朋友叫你发天气短信给她,而且还要每天发送,你必须坚持一年。 没问题,之前我们刚好使用过发送短信的手段,那我们把它用起来。 那天气消息呢?...我们使用到掉接口的模块,这里使用requests。...代码如下: def get_weather():#获取天气 url = "http://t.weather.sojson.com/api/weather/city/101280101"...来看完整的代码: import requests import time from twilio.rest import Client def send_message(text): # 下面认证信息的值在你的...(): url = "http://t.weather.sojson.com/api/weather/city/101280101" html = requests.get(url)
实现分页和版本控制的最好方法是什么?因为有太多的疑问,设计RESTful API变得很棘手。在这篇文章中,我们来看一下RESTful API设计,并给出一个最佳实践方案。...RESTful Web服务器为新员工生成ID,在其内部模型中创建员工,并向客户端发送响应。这个响应的HTTP头部包含一个Location字段,指示创建资源可访问的URL。...请求的HTTP body中包含要更新的属性值(21号员工的新名称“Bruce Wayne”)。 REST服务器更新ID为21的员工名称,并使用HTTP状态码200表示更改成功。...在响应参数中添加浏览其它API的链接 理想情况下,不会让客户端自己构造使用REST API的URL。让我们思考一个例子。 客户端想要访问员工的薪酬表。...更好的方案是在响应参数中添加一个 links字段,让客户端可以自动变更。 请求: GET /employees/ 响应: //...
RPC使用 GET 方式获取信息,其余操作则使用 POST 方式。服务器和客户端之间的交互机制归结为调用端点并获取响应。 易于添加功能。...以动词为中心的 RPC 中的操作与以名词为中心的 REST 中的操作相反 在 REST 中,操作是使用 HTTP 方法完成的,例如 GET、POST、PUT、DELETE、OPTIONS 以及 PATCH...REST响应包含的数据过多或过少,通常需要发起另一个请求。 REST 用例 管理 API。这类 API 专注于管理系统中的对象,面向众多用户,是最常见的 API 类型。...模式构建非常困难,因为它需要模式定义语言 (SDL) 中的强类型支持。 在查询之前掌握了模式后,客户端可以验证其查询,确保服务器能够响应。...通常,架构选择取决于 正在使用的编程语言, 你的开发环境,以及 您所能节省的资源,包括人力和财力。 了解每种设计风格的所有权衡后,API 设计人员可以选择最适合项目的设计风格。
这是一个完整的图表,可以轻松理解 REST API 的原理、方法和最佳实践。 现在,让我们从每个盒子的原理开始详细说明它。...最佳实践 现在,让我们换个角度来了解 REST 的基本最佳实践,这是每个工程师都应该知道的。 保持简单和细粒度:创建模拟系统底层应用程序域或系统数据库架构的 API。...服务通过在响应(如 Cache-Control、Expires、Pragma、Last-Modified 等)上设置标头来提高缓存能力 分页:REST 的原则之一是连通性——通过超媒体链接。...当链接在响应中返回时,API 变得更具自我描述性。对于支持分页的响应中返回的集合,“first”、“last”、“next”和“prev”链接至少是有益的。...为您的客户设计,而不是为您的数据设计。 - 复数:普遍接受的做法是始终在节点名称中使用复数形式,以保持您的 API URI 在所有 HTTP 方法中保持一致。
HTTP 协议来传递浏览器与服务器之间的请求与响应的 HTTP 协议采用请求/响应模型 HTTP 协议采用明文传输数据,这种方式并不安全,所以后来设计了 HTTPS 协议 统一资源定位符(URL)代表网络上一个特定的资源...HTTP 消息头:请求或响应的相关属性、配置、对消息正文的描述等 空行:指明消息头已经发送完毕 消息正文:包含请求数据,或响应中资源的表述 请求起始行包括: HTTP 方法 请求目标 HTTP 版本...4xx:客户端错误:请求包含语法错误或请求内容不正确 5xx:服务端错误:服务器在处理请求的过程中发生了错误 1.3 REST 最佳实践 首先,在实现 RESTful 系统时,应正确地使用 HTTP...方法、HTTP 消息头和 HTTP 状态码 除了原则以外,在设计资源的 URI 时也应该注意以下原则: 使用名词的复数表示一个资源集合 使用斜线 ”/“ 用来表示资源之间的层次关系 对资源的增删改查等操作名称不应该包含在...URL 中 如果一个操作无法对应到资源的某个操作上,此时可以适当地在 URI 中包含动词,但仍然应该基于一个资源的标识符 查询字符串可以用来对资源进行筛选、搜索或分页查询 URI 应使用小写字母 URI
由于他是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的构造,建议在分页的情况下使用。
REST作为API设计的基础 有些人可能会强烈反对反对提到的/ translate和其他JSON路由是API路由。其他人可能会同意,但也会认为它们是一个设计糟糕的API。...那么一个精心设计的API有什么特点,为什么上面的JSON路由不是一个好的API路由呢? 该架构中,Dr。你可能听说过REST API。...Fielding和其他REST纯粹主义者对评判一个API是否是REST API有严格的规定,但软件行业在实际使用中引用REST是很常见的。...自描述性消息意味着在客户端和服务器之间交换的请求和响应必须包含对方需要的所有信息。作为一个典型的示例,HTTP请求方法用于指示客户端希望服务器执行的操作。...然后,服务器查看自身格式列表并使用匹配客户端格式列表中的最佳格式进行响应。 我想做的是修改类别应用的错误处理器,使它们能够根据客户端的格式首选项对返回内容是使用HTML或JSON进行内容协商。
我们必须要知道的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
Python中的Twilio入门Twilio是一个提供通信API服务的平台,可以让开发者通过代码实现短信、电话和视频等功能。...在Python中,Twilio提供了一个方便易用的库,使得使用Twilio API变得简单,本文将介绍如何在Python中入门使用Twilio。...步骤三:获取Twilio的凭证在你的Twilio账户中,点击"Get Started",你将获得一个Account SID和一个Auth Token。...最后,通过message.sid可以打印出短信的SID,用于跟踪和确认短信的发送状态。结论使用Twilio的Python库,我们可以轻松使用Twilio API发送短信、电话等,实现通信功能。...本文介绍了如何在Python中入门使用Twilio,从安装库到发送短信的整个流程。希望本文能帮助你快速上手使用Twilio,并实现自己的项目需求。