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

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

文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架的视图处理各种异常,并处理返回适当的错误响应。 处理的异常包括: REST 框架定义的异常。...PermissionDenied 每种情况下,REST 框架都将返回具有适当状态代码和内容类型的响应。响应的正文将包含有关错误性质的任何其他详细信息。 大多数错误响应将在响应正文中包含一个键。...二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发的异常转换为响应对象。这允许您控制 API 使用的错误响应样式。...还必须使用设置键设置配置异常处理程序。...' } 请注意,将仅对引发的异常生成的响应调用异常处理程序。

1K40

那些年,我们一起误解过的REST

这些系统按照自己的理解,采用了类似REST API的部分形式(如用GET/POST/PUT/DELETE进行CURD),但更多的是随意设计,搞出了REST-RPC式,甚至是RPC式的API。...301(Moved Permanently):表示资源的URI已永久性更改,需要在响应内容获取新的URI。...302(Moved Temporarily):表示资源的URI已临时性更改,需要在响应内容获取新的URI。 400(Bad Request):表示请求有问题,如参数错误等。...举个有状态的例子,为了查工资,需要先登录系统(第一次请求),再输入查询密码(第二次请求)。如果前面两次请求都通过了,那么调用查询接口则可以查询到工资;否则调用查询接口则报未鉴权的错误。...而无状态的服务,则直接调用查询工资接口,在请求(一般Header)带有鉴权信息,若鉴权通过则可查询到工资,鉴权不通过则报错。该请求不依赖于任何前置请求,称为无状态。

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

Spring认证中国教育管理中心-Spring Data REST框架教程二

支持的媒体类型 该GET方法支持以下媒体类型: 应用程序/hal+json 应用程序/json 相关资源 对于存储库声明的每个查询方法,我们公开一个查询方法资源。...GETGET方法返回查询的结果。 参数 如果查询方法具有分页功能(指向资源的 URI 模板中指示),则资源采用以下参数: page: 要访问的页码(0 索引,默认为 0)。...5.1.分页 Spring Data REST 不是从大型结果集中返回所有内容,而是识别一些影响页面大小和起始页码的 URL 参数。...要在您自己的查询方法中使用分页,您需要更改方法签名以接受附加Pageable参数并返回 aPage而不是 a List。...事实上,用户可以从页面大小列表中进行选择,动态更改所提供的内容,而无需next顶部或底部重写和`prev 控件。

1.8K10

RESTful API 最佳实践

例子:HTTP中使用GET方法通常用于从服务器获取资源,无论调用多少次产生的额外效果都是从服务器获取资源,所以GET具有幂等性;而POST方法通常用于提交数据服务器上创建一个资源,由于最终创建的结果每次都是不同的...URI 应该将API部署专用域名之下:https://api.example.com 不用大写 用杠-不用下杠_; 参数列表要encode; URI不应该出现动词,动词应该使用HTTP方法表示,但是如果无法表示...API版本控制 URI存放:GET /v1/comments; 客户端Accept Header存放:Accept: application/vnd.github.v3+json,服务器自定义Header...当调用老版本API的时候很有用 415 Unsupported Media Type – 如果请求的内容类型是错误的 422 Unprocessable Entity – 用来表示校验错误 429 Too...这种情况下,可以使用一个额外的查询参数access_token。注意:使用查询参数来传递token存在一个固有的安全隐患,因为大多数web服务器会在服务器日志中保存查询参数

1.9K31

建议看看这篇RestFul API简明教程!

RestFul API 是每个程序员都应该了解并掌握的基本知识,我们开发过程设计 API 的时候也应该至少要满足 RestFul API 的最基本的要求(比如接口中尽量使用名词,使用 POST 请求创建资源...二、REST 接口规范 1、动作 GET :请求从服务器获取特定资源。举个例子:GET /classs(获取所有班级) POST :服务器上创建一个新的资源。...因为 REST 的资源往往和数据库的表对应,而数据库的表都是同种记录的"集合"(collection)。如果 API 调用并不涉及资源(如计算,翻译等操作)的话,可以用动词。...3、过滤信息(Filtering) 如果我们查询的时候需要添加特定条件的话,建议使用 url 参数的形式。...301 永久重定向 400 错误请求 500 服务器错误 201 创建 304 资源未修改 401 未授权 502 网关错误 403 禁止访问 504 网关超时 404 未找到 405

90620

大厂都在实践的GraphQL,你了解吗?

它为客户端提供了一种灵活的方式来请求它需要的数据,提供严格类型的接口来查询数据,以及比 REST 更好的错误处理。...与 REST API 相比,GraphQL 有其自身的优势,例如 只请求所需的内容,而不是所有内容。 防止为获取所需数据而进行的级联调用。 客户端不需要选择 REST 路径来获取不同的资源数据。...带有@QueryMapping注释的函数将成为查询的处理程序。 查询名称会自动映射到函数名称,或者使用 @QueryMapping接口的value参数本例为person)显式定义它。...GraphQL 错误处理 首先看看当我们遇到错误时会发生什么。 为此,我们调用获取电话字段时,抛出一个异常。...、更改数据以及定义自定义错误处理程序。

2.1K40

5个REST API安全准则

当开发REST API时,从一开始就必须注意安全方面。 REST是通过URL路径元素表达系统特定实体的手段。REST不是一个架构,而是一种Web上构建服务的架构风格。...当设计REST API时,不要只使用200成功或404错误。 以下是每个REST API状态返回代码要考虑的一些指南。 正确的错误处理可以帮助验证传入的请求,并更好地识别潜在的安全风险。...200 OK -回应一个成功的REST API的行动。HTTP方法可以是GET,POST,PUT,PATCH或DELETE。 400错误请求 -请求格式错误,如消息正文格式错误。...405不允许的方法 -意外的HTTP方法的错误检查。 例如,RestAPI期待HTTP GET,但使用HTTP PUT。...一些方法(例如,HEAD,GET,OPTIONS和TRACE)被定义为安全的,这意味着它们仅用于信息检索,并且不应该更改服务器的状态。设计和构建REST API时,您必须注意安全方面。

3.7K10

如何使用Spring和Java配置构建一个REST API

概览 本文展示了如何在Spring配置REST——控制器和HTTP状态响应码、有效负载编排和内容协商的配置。 2....请注意,WebConfig配置类没有被包含在测试,因为没有提供其需要的Servlet上下文。 5. 控制器 @Controller是RESTful API整个Web层的中心组件。...向客户端返回405时,最好包括Allow HTTP头,以指定允许哪些操作。这是Spring MVC的标准行为,不需要任何额外的配置。 6.2....客户端错误 客户端错误的情况下,自定义异常被定义并映射到适当的错误代码。 简单地从Web层的任何位置抛出这些异常,将确保Spring将相应的状态代码映射到HTTP响应上。...本系列的下一篇文章,我将重点讨论 API的可发现性、高级内容协商以及其它的处理和传输资源状态的方式。 这篇文章的所有代码都可以Github上找到。

2K30

Microsoft REST API指南

查询参数方式提交自定义请求头 有些标头对某些场景(如AJAX客户端)不兼容,特别是不支持添加标头的跨域调用时。...对于GET和HEAD调用,请避免要求不属于上述简单集的请求标头。最好是允许将它们作为查询参数提供。...JSONP,服务采用指示格式的参数($format=json)和表示回调的参数($callback=someFunc),并返回一个 text/javascript 文档,其中包含用指定名称封装在函数调用的...概念层面上,delta链接基于一个定义查询,该查询描述正在跟踪更改的一组结果集。 delta链接编码并跟踪这些更改的实体集合,以及跟踪更改的起点。...从集合删除的项必须仅使用它们的“id”和“@remove”节点表示。 10.5. Using a delta link 客户端通过调用delta链接上的GET方法请求更改

4.5K10

RESTful API 设计最佳实践

为资源设置一个基本URL,将可选的、复杂的参数查询字符串表示。 GET /employees?...将版本号放在URL以是必需的。如果您有不兼容和破坏性的更改,版本号将让你能更容易的发布API。发布新API时,只需增加版本号的数字。...只需使用相应的资源集合URL,并将搜索字符串附加到查询参数即可。 GET /employees?query=Paul 如果要对所有资源提供全局搜索,则需要用其他方法。...响应参数添加浏览其它API的链接 理想情况下,不会让客户端自己构造使用REST API的URL。让我们思考一个例子。 客户端想要访问员工的薪酬表。...更好的方案是响应参数添加一个 links字段,让客户端可以自动变更。 请求: GET /employees/ 响应: //...

1.4K10

Spring Boot处理REST API错误的正确姿势

本文中,我们就来介绍我们使用spring boot来构建REST API时如何更好的更恰当的处理错误信息。 ?.../spring-boot-exception-handling) 上的spring-boot-exception-handling应用程序上的源代码来通过REST API查询“鸟”这个对象。...好的,来定义一个表示API错误的类。 我们将创建一个名为ApiError的类,其具有足够的字段来保存REST调用期间发生的错误的相关信息。 ? status属性:保存操作调用状态。...它表示REST调用期间遇到的验证问题的类。 下面,你将看到我们实现了这里所做的改进之后生成的JSON响应的例子,仅仅是为了了解本文接下来的内容。...handleEntityNotFound()方法,我们将HTTP状态代码设置为NOT_FOUND并使用了新的异常消息。 以下是GET /birds/2 终端的响应: ?

3.5K130

drf之请求、响应、视图

如果前端请求未进行Accept声明,则会采用默认方式处理响应数据,我们可以通过配置来修改默认响应格式。 可以rest_framework.settings 查找所有的drf默认配置项。...; content_type: 响应数据的Content-Type,通常此参数无需传递,REST framework会根据前端所需类型数据来设置该参数。...APIView仍以常规的类视图定义方法来实现get() 、post() 或者其他请求方式的方法。例如使用APIView简单的实现五个增删查改的API接口。...提供的关于序列化器使用的属性与方法 属性:serializer_class  指明视图使用的序列化器 方法: get_serializer_class(self) : 当出现一个视图类调用多个序列化器时...,那么可以通过条件判断get_serializer_class方法通过返回不同的序列化器类名就可以让视图方法执行不同的序列化器对象了。

2.1K20

restful api接口规范和服务调用的区别_rest接口规范

URI URI 表示资源,资源一般对应服务器端领域模型的实体类。 URI规范 不用大写; 用杠-不用下杠_; 参数列表要encode; URI的名词表示资源集合,使用复数形式。...过深的导航容易导致url膨胀,不易维护,如 GET /zoos/1/areas/3/animals/4,尽量使用查询参数代替路径的实体导航,如GET /animals?...对第三点的实现稍微多说一点: Java 服务器端一般用异常表示 RESTful API错误API 可能抛出两类异常:业务异常和非业务异常。...业务异常由自己的业务代码抛出,表示一个用例的前置条件不满足、业务规则冲突等,比如参数校验不通过、权限校验失败。...API的演进 版本 常见的三种方式: 1.uri中放版本信息:GET /v1/users/1 2.Accept Header:Accept: application/json+v1 3.自定义

1.7K10

wordpress插件开发踩坑记

想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。...新站首次用 Postman 去 访问 REST API 接口,如:http://EXAMPLE_URL/wp-json/wp/v2/posts,会发现返回的是 404,需要自己管理后台将:设置-固定链接...0,这样会导致前端不能抛出错误提示,啥也收不到if (empty($username)) { return new WP_Error(10001, "用户名不能为空", "");}4. get_post_format...函数参数没设置默认值,接口调用会报错获取用户信息时定义了一个格式化用户信息的方法,第二个参数 $t 开始没设置默认值,调用时不需要的就不会传,但是当方法里用到 $t 去判断为假时接口会直接崩了,自己设置一个默认值就好了...WP_Query 和 WP_Comment_Query 的 no_found_rows 参数WP_Query 和 WP_Comment_Query 这两个查询类里,其实都有这个参数no_found_rows

28310

RESTful API 设计最佳实践

Web API 近几年变得越来越火,而简洁的 API 设计多后端系统交互应用也变得尤为重要。通常,会使用 RESTful API 来作为我们的 Web API 。...使用的名词而不是动词 使用名词来定义接口 不应该使用动词: /getAllResources /createNewResource /deleteAllResources GET 方法和查询参数不能改变资源状态...下面是错误的用 GET 方法来修改 user 的状态: GET /users/711?...如 HTTP GET 方法来获取资源,HTTP DELETE 方法来删除资源。 第四个层次(Level 3)的 Web 服务使用 HATEOAS。资源的表达包含了链接信息。...设计 API 处理错误时,应该充分使用 HTTP 状态码,而不是简单的抛出个 “500 – Internal Server Error(内部服务器错误)” 所有的异常都应该有个错误的 payload

63730

Spring Boot REST API错误处理指南

本文将介绍使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...让错误响应更清晰 本文中,我们将实现一个通过REST API来检索鸟类(代表一个对象)的应用程序,代码托管GitHub上。这个示例包含了本文描述的所有功能,以及比较多的错误处理场景。...GET /birds/noexception/{birdId} 这个调用也可以获取鸟的相关信息,但是即使没有找到相应的鸟,也不会抛出异常。 POST /birds 创建一只鸟。...exception字段只有Java开发人员会感兴趣,该消息使API消费者迷失与它们无关的细节。是否有更多的细节可以从错误产生的异常中提取出来呢?...大多数工作都发生在doResolveHandlerMethodException()方法。 哪些信息对API消费者来说很重要? 通常重要的是要说明错误来自哪里。是否有任何输入参数发生错误

3.2K20

Linux Tomcat的服务器如何查看接口请求方式?

问题描述 最近在和安卓开发对接接口,遇到一个接口总是报405错误,有对接经验的开发应该都知道是请求方式不对,假如接口定义为POST请求的,但是客户端却用GET请求,这时候就会报这个错误。...Android客户端那边使用xUtils框架请求网络API接口,也是多年的Android开发,对接也是使用post请求过来的,所以初步排查有可能是缓存或者是被代理服务器给转了,为了确定请求的方式和其它业务参数.../rest/api/url_by_code HTTP/1.1” 200 268 打印日志的格式可以在哪里配置?...localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> 具体的参数意义...请求调用了接口,但是Android代码里用xUtils是用post请求方式的,这个问题排查了比较久,后面后端清了缓存,Android客户端也清缓存,重新安装了,后面调用都是POST请求,所以是因为缓存导致

2500
领券