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

带有 Python REST Web 服务示例的 REST API 快速入门指南

3.缓存 缓存的出现是为了解决 REST 的无状态性问题。这个缓存是在客户端实现的,并且缓存了可缓存的响应。...请求头 发送到服务器的额外请求以指定响应类型、编码、内容类型和自定义参数。等等。 4. 请求体 尝试创建资源,资源数据在放置请求的正文中发送。 5. 响应体 Web 服务器在响应正文中返回数据。...创建 API 端点和 REST 方法 接下来,我们需要创建 api 端点和所需的 REST 方法,如下所示。 GET 方法将在文章列表中搜索请求的类别,如果找到则返回数据以及响应代码 200 OK。...否则 404 未找到 class Article(Resource): def get(self, category): POST 方法将在文章列表中插入新的文章数据,并返回插入的数据并创建响应代码...如果记录已存在,则返回错误代码 400 错误请求。 def post(self,category): PUT 方法将覆盖记录并返回数据以及响应代码 200 OK。

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

REST API有关幂等性等11条最佳实践

在我的职业生涯中,我使用了数百个 REST API 并制作了数十个。由于我经常在 API 设计中看到相同的错误,因此我认为写下一组最佳实践可能会更好。...返回 JSON,如果客户端想要协商其他内容,请依赖标准 HTTP 标头。 规则 #4:不要将数组作为顶级响应返回 来自端点的顶级响应应该始终是一个对象,而不是一个数组。...由于成功执行的 DELETE 作业无论如何都会重试,因此作业必须将 "未找到 "响应视为成功。如果将 404 作为成功处理,而堆栈中的失败返回 404,作业就会从队列中删除,删除也不会传播。...你可以使用 404,但返回一个自定义的错误正文,并要求客户端检查错误正文是否正确。这会给懒惰的客户端程序员带来麻烦。...在 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数的重复请求或在冲突返回现有 ID,使 API 具有幂等性。

18020

在SpringSpringboot中异步处理异常

目前,每当出现特殊情况,客户休息应用程序都会返回一个 ResponseEntity(一个由状态、标头和正文组成的 Http 响应包装器)。例如,在请求详细信息找不到客户。...实施一个将使代码更易于阅读,并将“常规代码”与发生异常情况要执行的操作分开。 上面的代码将返回 404 错误和如下图所示的信息。 现在让我们看一下在我们的应用程序中管理异常的第一个机制。..."path": "/api/v1/customers/100" } 作为安全措施,默认情况下 Spring 不会在响应中显示错误消息。...", "path": "/api/v1/customers/1001" } 上面的 JSON 可能不符合我们的要求。我们将在下一节中看到如何对任何异常使用自定义 JSON 错误响应。...在我们的例子中,该方法将异常类型作为参数并返回一个 ResponseEntity。 它的工作方式是当抛出异常,处理程序方法将拦截它并返回特定的响应(如果有的话)。

18610

教你 10 分钟构建一套 RESTful API 服务( 中 )

增加了对快速构建 REST API 的支持 flasgger- flask 支持的 Swagger UI,可以生成 API 接口文档 # 安装flask pip3 install flask # 安装...if __name__ == '__main__':     app.run() 从 flask_restful 文件中导入 Api、Resource 两个类,使用上面的 app 对象,构建一个 api...中的 marshal_with 类可以作为装饰器,定义到动作函数上,指定要返回的字段;然后使用 SQLAlchemy ORM 操作数据库,将数据直接进行返回 比如:返回获取数据列表 # api_foo.py...flask_restful 中的 Api 实例对象,将上面定义的资源路由暴露出去 #api_app.py from flask_restful import Api api = Api(app)...,关注公众号后回复「 rest2 」即可获得全部源码 如果你觉得文章还不错,请大家点赞分享下。

1.6K10

【愚公系列】2022年04月 Python教学课程 77-DRF框架之异常

文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架的视图处理各种异常,并处理返回适当的错误响应。 处理的异常包括: 在 REST 框架中定义的异常。...APIException 404异常。Http404 权限异常。PermissionDenied 在每种情况下,REST 框架都将返回具有适当状态代码和内容类型的响应。...验证错误的处理方式略有不同,并且将在响应中包含字段名称作为键。如果验证错误不是特定于特定字段的,则它将使用“non_field_errors”键,或者为该设置设置设置的任何字符串值。...二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发的异常转换为响应对象。这允许您控制 API 使用错误响应样式。...它不会用于视图直接返回的任何响应,例如在序列化程序验证失败由泛型视图返回响应。HTTP_400_BAD_REQUEST

1K40

Rest api简介

回页首 正确的使用 HTTP 响应代码 作为 API 的设计者,正确的将 API 执行结果和失败原因用清晰简洁的方式传达给客户程序是十分关键的一步。...因此,HTTP 响应代码可以保证客户端在第一间用最高效的方式获知 API 运行结果,并采取相应动作。 下表列出了比较常用的响应代码。 表 1....服务器返回响应时,不会返回网页内容。 400 错误请求 , 服务器不理解请求的语法。 401 未授权 , 请求要求进行身份验证。 403 已禁止 , 服务器拒绝请求。...404 未找到 , 服务器找不到请求的网页。 405 方法禁用 , 禁用请求中所指定的方法。 406 不接受 , 无法使用请求的内容特性来响应请求的网页。...当收到一个有条件请求的 HTTP 头的 REST 请求的时候,我们的程序需要将收到的时间戳或者电子标签与当前内容作比较,就可以很容易的知道用户请求的数据内容在这段时间是否发生过修改,并根据比较结果返回给用户最新内容

2.1K60

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

对象查询的get_or_404()方法的英文以前见过的get()方法的一个非常有用的变行业释义体育,如果用户存在,报道查看它定给id的对象,当ID不存在,它会中止请求并向客户端返回一个404错误,而不是返回...查询对象的get_or_404()方法如何触发404错误(我将在以后向您演示如何扩展错误处理,踩返回这些错误JSON格式) )。...我为这个请求返回响应将是新用户的表示,因此使用产生to_dict()它的有效格式。创建资源的POST请求的响应状态代码应该是201,即创建新实体使用的代码。...服务器返回404错误,但是这个错误被格式化为标准的404 HTML错误页面。...对于JSON响应,我将使用API blueprint中引入error_response辅助函数,但在这里我要将其重命名为api_error_response(),刹车清楚它的作用和来历

5K10

使用Flask构建简单的RESTful服务

而在RESTful的方向上,Django自身的第三方实现rest_framework也不错,现在看起来很简单的概念和实现,用了很长一段时间才彻底理解。...使用如下的方式来运行,服务即可开启。...总体感觉虽然可以实现,但是所有的细节都需要自己来控制,比如输入结构,输出结构,信息查找的匹配,还有url和方法的映射。总是感觉有些拖泥带水,拖累太重,you can you up的感觉。...使用RESTful的方式,在Flask里面就是引入这个模块即可,相对来说比较简洁和轻量。 要安装flask_restful的话,一个命令即可。...看一下代码其实会发现,这里注册了两个API,这里和上面程序的不同就在于里面使用了Resource做了封装,如果我要添加一个逻辑,其实也是很方便的。不需要堆砌一大堆的if-else

76520

外行学 Python 爬虫 第九篇 读取数据库中的数据

匹配REST设计风格的Web API称为RESTful API。它从三个方面资源进行定义。...上面使用 Flask 的一个最简单的示例,我们的示例没有这么简单,但是也差不多:)。在这个示例中我们需要创建一个 Flask 的实例、初始化数据库控制和 API 控制框架。...RESTful API 的实现 在这里使用 flask-restful 扩展来实现 RESTful API。flask-restful 的初始同 flask-sqlalchemy 的初始化方法相同。...from flask_restful import Resource, reqparse from sqlalchemy import func from pycrawler.module import...在 get 函数中,通过传入的 id 编号,从数据库中读出该元件的完整信息,并转换为 json 数据返回给客户端,当 id 不存在是将返回一个 404 错误

83120

教你 10 分钟构建一套 RESTful API 服务( Flask篇 )

增加了对快速构建 REST API 的支持 flasgger- flask 支持的 Swagger UI,可以生成 API 接口文档 # 安装flask pip3 install flask # 安装...if __name__ == '__main__': app.run() 从 flask_restful 文件中导入 Api、Resource 两个类,使用上面的 app 对象,构建一个 api...对象,接着准备一个列表数据 from flask_restful import Api,Resource app = Flask(__name__) # 实例化一个 Api 对象,用来创建、管理...类可以作为装饰器,定义到动作函数上,指定要返回的字段;然后使用 SQLAlchemy ORM 操作数据库,将数据直接进行返回 比如:返回获取数据列表 # api_foo.py from flask_restful...flask_restful 中的 Api 实例对象,将上面定义的资源路由暴露出去 #api_app.py from flask_restful import Api api = Api(app)

13.4K61

Web 开发 RESTful

简介 RESTful API是目前比较成熟的一套互联网应用程序的API设计理论 安装 Flask 的 RESTful 模块是 flask-restful ,使用 pip 安装: pip install...flask-restful 像之前的 bootstrop-flask 以及 flask-sqlalchamy 模块一样,使用前需要对 Flask 应用进行初始化,然后会得到当前应用的 api 对象,用...endpoint 是 Flask 中对具体路由的内部的具体定义,一般作为 url_for 方法的第一个参数,即通过 endpoint 获得该路由的 URL,在列出 RESTful 资源 URL 非常有用...RESTful 服务器对请求数据有很强的依赖,就请求数据的获取及校验是很繁琐的事情,还好 Flask-RESTful 提供了非常好的请求解析工具 reqparse,不仅可以获取请求数据,还可以对数据进行校验并返回合适的错误消息...默认情况下有多个参数错误,会以定义参数的顺序,逐个显示错误,定义解析器将 bundle_errors 设置为 True,则可显示多个错误,如 parser = reqparse.RequestParser

1.1K40

创建 REST API 的最佳入门教程

id=123 当人们开始去实现他们自己的API接口,问题就出现了。竟然没有一个标准的方法来命名URL,人们总是要参考API才得知它是如何运作的。...(IE尝试以PUT请求创建相同的资源) API响应格式 当你请求HTTP,你可以请求你想要接收的格式。...例如,请求一个网页,你想以HTML的格式请求,或者如果你想要下载一张图片,返回格式应该是图片的格式。然而,响应请求格式是服务器的职责。...如今,JSON 已经快速发展成为REST API选择的格式,它有一个轻量级的、可读性又很高的语法,以致其很容易操作。所以,当使用我们API的用户按他们想要的格式发出请求和指定JSON。...你大可以抛出一些错误的类型。但我建议你将JSON格式作为你的标准响应格式,因为这是开发者想要的格式。没理由去支持其他的格式,除非你已经有一个可支持的API

3K20

Spring Boot REST API错误处理指南

API处理错误的默认行为通常是返回难以理解的堆栈跟踪,而这些对API客户端来说并没有什么用。将错误信息切分成多个字段可以方便API客户端的解析,以此向用户提供更加友好的错误消息。...本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...让错误响应更清晰 在本文中,我们将实现一个通过REST API来检索鸟类(代表一个对象)的应用程序,代码托管在GitHub上。这个示例包含了本文描述的所有功能,以及比较多的错误处理场景。...Spring框架的MVC模块在错误处理方面提供了一些很不错的功能,但是这些功能需要由开发人员主动调用,才能返回API客户端的有具体意义的响应。 我们来看一下这个Spring Boot默认响应的例子。...这里另外还有一些资源,可对本文起到补充作用: Baeldung - 使用Spring对REST进行错误处理 Spring Blog - Spring MVC中的异常处理 了解基础知识 为什么API应有一个统一的错误格式

3.2K20

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券