基于REST API的项目返回的数据结构题都是统一的,这样方便接口对接和使用。...因此,对结果对象的设计会有一定的要求: 一个结果对象要能够同时支持成功和失败的数据结构; 要能够处理多种类的返回结果对象; 能够很轻易的判断出结果是成功还是失败; 能够存储错误编码和错误信息; 下面就基于...Spring Boot项目来设计一下对应的统一结果返回对象。...Status getStatus() { return this.status; } } 上面的类有以下关键点: Status枚举类用来保存状态,这样可以方便的看出请求是成功还是失败...基于上述对象,返回的JSON报文格式如下: { "status": "success", "data": { "task": "Write a post",
2、调用添加会议背景接口后等待结果返回变更后:1、调用创建/修改网络研讨会接口后,除设置封面图片外其他参数设置等待结果返回,封面图片在Webhook 素材上传结果事件消息中返回。...,则该字段返回失败原因 "medium_type":1, //1:video,2:pic,3:file"medium_url":"" }...{"upload_status":true, //true:上传成功;false:上传失败"error_msg":"",//如果上传失败,则该字段返回失败原因 "medium_type...参考官网材料对接webhook(已对接过可略过),参考文档:https://cloud.tencent.com/document/product/1095/516052、订阅素材上传结果事件消息图片3、调用Rest...API接口时记录返回的X-Tc-Trace参数,参考文档:https://cloud.tencent.com/document/product/1095/518304、接收到素材上传结果事件消息后,根据其中的
drf介绍 Django REST framework (简称:DRF)是一个强大而灵活的 Web API 工具。 遵循RESTFullAPI风格,功能完善,可快速开发API平台。...返回数据。...user_ser.save() res = {'code': 200, 'msg': '创建用户成功'} else: res = {'code': 500.../user/ 创建数据结果返回: http://127.0.0.1:8000/myapp/api/user/ Serializer用户更新和删除接口 app视图函数: myapp/views.py.../myapp/api/user/ 错误返回值优化 在数据校验时候传入这个配置即可捕获异常,异常状态码是400: raise_exception=True 需要修改app的视图函数: myapp
文章目录 一、DRF框架自带异常 二、自定义异常 一、DRF框架自带异常 REST 框架的视图处理各种异常,并处理返回适当的错误响应。 处理的异常包括: 在 REST 框架中定义的异常。...PermissionDenied 在每种情况下,REST 框架都将返回具有适当状态代码和内容类型的响应。响应的正文将包含有关错误性质的任何其他详细信息。 大多数错误响应将在响应正文中包含一个键。...二、自定义异常 您可以通过创建一个处理程序函数来实现自定义异常处理,该函数将 API 视图中引发的异常转换为响应对象。这允许您控制 API 使用的错误响应样式。...异常处理程序函数应返回对象,如果无法处理异常,则应返回。如果处理程序返回,则将重新引发异常,Django将返回标准的HTTP 500“服务器错误”响应。...它不会用于视图直接返回的任何响应,例如在序列化程序验证失败时由泛型视图返回的响应。HTTP_400_BAD_REQUEST
什么是REST API ? 前言 作者:神的孩子都在歌唱 一. REST简介 REST 是 Internet 上计算机之间最常见的通信标准。 API 代表应用程序编程接口。...这是一套新的规则,自 2000 年代初以来一直是构建 Web API 的通用标准。遵循 REST 标准的 API 称为 RESTful API。...一个良好实现的 RESTful API 会返回正确的 HTTP 状态代码。 • 200 状态码: 表示请求成功。 • 400状态码: 意味着我们的请求有问题。例如,请求包含不正确的语法。...• 500 状态码: 这意味着服务器出现问题。例如,服务不可用。不被限制使用的客户端可以重试失败的请求。 不过重试需要注意,有些动作不是 幂等(idempotent) 的,重试时需要格外小心。...REST 实现应该是无状态的。这意味着双方不需要存储任何关于彼此的信息。 2. 服务器返回大量数据,请使用分页。常见的分页方案使用**“limit”和“offset”**作为参数。 /books?
二、RESTFul设计风格 1、Rest与RestFul REST(英文:Representational State Transfer,简称REST),表述性状态转移,指的是一组架构原则。...Restful: 遵守了rest 原则 的web服务或web应用。...2、API设计六要素 资源路径(URI)、HTTP动词(Method)、过滤信息(query-string)、状态码(Status-code)、错误信息(Error)、返回结果(Result) ?...found)- 资源不存在 406 (not acceptable)- 服务端不支持所需表示 409 (conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败...RESTFul 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。
/ex/jira/xxxxxx/rest/api/xxx/search?.../script/execution 发送给 Notebook 后端, Notebook 后端会将代码进行一定的预处理,然后发送给 Engine 端执行, Engine 会异步执行,先返回一个 job 标记符...执行完成(无论失败或者成功)后,再通过 /api/job/callback 接口回调 Notebook 后端,将状态和结果发回给 Notebook。...这个时候,大概率就是 Engine 回调 /api/job/callback 失败了。 这里有三种可能: 如果是常态,那么是 Engine 拿到了错误的回调地址,无法正常回调 Notebook 后端。...RestController: Succeeded SQL callback request failed after 1 attempts, the last response status is: 500
permission, 'message', None) ) 和用户认证一样,同样遍历一个权限类对象列表,并且调用该列表中元素的has_permission()方法,该方法返回布尔值...的认证框架(authentication_classes数组不为空)并且身份认证失败,就抛出NotAuthenticated异常,否则会抛出PermissionDenied异常 class NotAuthenticated...default_code = 'permission_denied' 而PermissionDenied会返回错误403(拒绝授权访问) 在向permission_denied()类传递参数时,使用了反射...class APIException(Exception): status_code = status.HTTP_500_INTERNAL_SERVER_ERROR default_detail...示例 # api/utils/Permission.py from rest_framework.permissions import BasePermission class CommonPermission
REST形式的API组织形态是资源和实体,请求的路由可以看出对资源的访问,规范统一接口自解释。 比如 https://xxxx/Student/1 用Get方法调用就是获取编号为1的学生。...在Rest风格中使用状态码来标识返回结果,其中常用200、201、400、401、404、410、500等。...比如{code:1,msg:"成功"}或者{code:0,msg:"失败"}。...而在Rest 中Post通常用201返回新增成功,delete 删除的数据不存在返回404,但是404大家知道可能也许是url错误,所以表诉不清。...因此我们在实际设计中可能会进行Rest裁剪,我们既使用RPC的返回结果,同时多用准确的状态码,不用什么都返回200。
如果任何权限检查失败,将引发exceptions.PermissionDeniedorexceptions.NotAuthenticated异常,并且视图的主体将不会运行。...当权限检查失败时,将根据以下规则返回“403 Forbidden”或“401 Unauthorized”响应: 请求已成功验证,但权限被拒绝。— 将返回 HTTP 403 Forbidden 响应。...] 或者使用基于装饰器@api_view的函数视图 from rest_framework.decorators import api_view, permission_classes from rest_framework.permissions...如果你使用一个常规的APIView,你需要自己调用分页API来确保你返回一个分页的响应。...limit=100&offset=500", "previous": "https://api.example.org/accounts/?
比如最常用的 200 表示成功,500 表示Server内部错误等。 ? 1、REST 是面向资源的,这个概念非常重要,而资源是通过 URI 进行暴露。...比如:左边是错误的设计,而右边是正确的 GET /rest/api/getDogs --> GET /rest/api/dogs 获取所有小狗狗 GET /rest/api/addDogs --> POST.../rest/api/dogs 添加一个小狗狗 GET /rest/api/editDogs/:dog_id --> PUT /rest/api/dogs/:dog_id 修改一个小狗狗 GET /...rest/api/deleteDogs/:dog_id --> DELETE /rest/api/dogs/:dog_id 删除一个小狗狗 2、REST很好地利用了HTTP本身就有的一些特征,如HTTP...怎么用RESTful 1、每个资源使用2个URL,网址中只能有名词 2、对于资源的操作类型由HTTP动词来表示 3、统一的返回结果 4、返回正确的状态码 5、允许通过HTTP内容协商,建议格式预定义为JSON
如何使用REST API?HTTP 动词REST API 通过各种 HTTP 请求方法,使前端与服务器的通信过程更容易,最常用的方法是:GET : 用于读取服务器上的数据。POST : 用于创建数据。...5xxs:服务器错误,请求失败。...一些常见的 HTTP 状态代码包括:200:成功的请求,通常是 GET201:创建后请求成功,通常是 POST204:请求成功,没有返回内容,通常是 PUT 或 PATCH301:永久重定向到另一个端点...错误请求(客户端应修改请求)401:未经授权,凭据无法识别403:禁止,凭据接受但没有权限404:未找到,资源不存在410:消失了,资源以前存在但现在不存在429:请求过多,用于速率限制,应包含重试标头500...:服务器错误,一般性,值得查看其他 500 级错误503:服务不可用,另一个重试标头有用总结REST是一种软件架构风格,用于 Web 架构的设计,任何遵循 REST 设计原则的 API都被称为 RESTful
# 限流 限流指的是对用户请求的API的次数进行限制,目前我在实际开发中用的不多,所以以下内容不一定准确。 限流一般有两种方法,一是对API进行限流,二是对视图进行限流。...* **对API进行限流** 首先需要在项目的settings中的rest_framework部分添加DEFAULT_THROTTLE_CLASSES和DEFAULT_THROTTLE_RATES...ordering=title 过滤器 所谓过滤其实就是在API请求的时候加上一些参数,限制返回的结果,比如只查询id为1的书本信息,或者查询id大于2小于5的书本信息。...5 # 后端默认设置的每页返回的数据的条数 max_page_size = 5 # 前端允许的最大自定义每页的数据条数,也就是上面page_size的最大值 修改settings文件 # rest..., status=status.HTTP_500_INTERNAL_SERVER_ERROR) return response ``` 然后还要修改settings文件: ```
URL API请求授权 1.REST的来源 REST:Representational State Transfer(表象层状态转变),如果没听说过REST,你一定以为是rest这个单词,刚开始我也是这样认为的...4.一致的数据格式 服务端返回的数据格式要么是XML、要么是Json(获取数据),或者直接返回状态码,有兴趣的可以看看博客园的开放平台的操作数据的api,post、put、patch都是返回的一个状态码...比如服务端可以返回一些 Javascript 代码让客户端执行,去实现某些特定的功能。 提示:REST架构中的设计准则中,只有按需编码为可选项。...", "data": { "userName": "123456", "age": 16, "address": "beijing" } } 返回失败的响应json格式...HTTP Method 详细解释 返回状态码 GET 获取对象或集合 200成功、401没有授权、403访问禁止、404没有资源、参数错误、406请求格式不正确、410资源被删除、500服务器内部错误
背景 腾讯会议(Tencent Meeting,TM)Rest API 是为参与腾讯会议生态系统建设的合作方开发者接入并访问腾讯会议资源提供的一组工具,是访问腾讯会议 SaaS 服务的入口。...若 Rest API 调用失败,返回的 HTTP StatusCode 不为200时,响应体为错误信息,包含错误码和详细的错误信息。 服务错误,HTTP Status Code统一返回500。...API请求错误,HTTPStatus Code 统一返回400。 详细的错误信息可解析返回消息体中的JSON 串。...示例 HTTP/1.1 500 { "error_info": { "error_code": 200003, "message...": "Signature failed" // API 调用签名验证错误 } } 案例分析 案例1 客户:“腾讯会议:创建会议的时候一直返回200003签名错误,完全按照官方的签名方式
token=token).first() if not token_obj: raise exceptions.AuthenticationFailed('用户认证失败...(ret) # 测试数据 ORDER_DICT = { 1: { 'name': '书包', 'sku': 1002, 'price': 500...schema_view = get_schema_view(title='User API', renderer_classes=[OpenAPIRenderer, SwaggerUIRenderer...= [ url(r'^docs/', schema_view, name='docs'), url(r'^admin/', admin.site.urls), url(r'^api...import serializers # 返回数据 class UserSerializer(serializers.HyperlinkedModelSerializer): class
这是一个基于python3.7.1的用来快速发布Django项目的 DockerFile 功能: 快速发布Django+REST+MySQL搭建的API 使用: 根据dockerFile build 镜像...或者直接下载 sudo docker pull registry.cn-hangzhou.aliyuncs.com/junebao/django_rest_mysql:1.2.6 创造并开启容器 docker...# 这是一个用来快速发布 Django + REST API 的镜像,基于 python3.7.1 # 项目的发布仅仅使用了 uginx,所以如果Django项目中需要处理静态文件,请使用Nginx #...trusted-host=mirrors.aliyun.com" >> ~/.pip/pip.conf RUN pip install --upgrade pip RUN pip install django==2.2.7
return HttpResponse() 不过需要注意如果和django rest framwork一起使用的话,要将Ratelimit 装饰器放到第一行,如下: @ratelimit(key='user...', rate='1/3s', block=True, method=ratelimit.ALL) @api_view(['POST', 'GET']) @csrf_exempt def api_get_level...(request): 否则会导致如下的错误信息: IndexError at /rest-api/level/ tuple index out of range Request Method: GET...Request URL: http://192.168.1.195:8006/rest-api/level/ Django Version: 2.2.7 Exception Type: IndexError...field list'”) django raw_id_fields 显示名称而不是id(raw_id_fields: How to show a name instead of id) Django REST
', # json渲染器 'rest_framework.renderers.BrowsableAPIRenderer', # 浏览API渲染器 ) } 1.2.1 构造方式...APIView与View的不同之处在于: 传入到视图方法中的是REST framework的Request对象,而不是Django的HttpRequeset对象; 视图方法可以返回REST framework...例如使用APIView简单的实现五个增删查改的API接口。...如果序列化器对前端发送的数据验证失败,返回400错误。...成功返回200,序列化器校验数据失败时,返回400错误。
二、实例介绍 REST 定义了资源的通用访问格式,接下来一个消费者为实例,介绍 RESTful API 定义: 获取所有 users GET /api/users 获取指定 id 的 users GET...415 Unsupported Media Type:客户端要求的返回格式不支持。比如,API 只能返回 JSON 格式,但是客户端要求返回 XML 格式。...422 Unprocessable Entity:客户端上传的附件无法处理,导致请求失败。 429 Too Many Requests:客户端的请求次数超过限额。...500 Internal Server Error:客户端请求有效,服务器处理时发生了意外。 503 Service Unavailable:服务器无法处理请求,一般用于网站维护状态。 3....服务端响应 3.1 应该返回 JSON 对象 API 返回的数据格式应该是 JSON 一个对象。
领取专属 10元无门槛券
手把手带您无忧上云