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

技术随笔:Rest Api设计中处理业务错误的一些思考

如何响应业务错误 在这之前,笔者也没有特别注意到这个点,统一使用200响应,再以业务状态这种方式结合使用。...上述方式的一个优点在于,对于调用方而言,减少对状态的关注与处理,只处理响应为200的情况就可以了。除了这个优点,我暂时想不出这种模式有其它优点。...那以此类推,对于响应,我们也可以参照这个原则来设计更好。 将200响应表示为业务成功与业务失败的混合,这个明显就让200这个状态的职责复杂化了,为什么不让它仅表示业务成功呢,这样会不会更纯粹。...国内著名的阮一峰老师在其RESTful API 最佳实践一文中也提及过此点,并未提及具体原因。...3.2 发生错误时,不要返回 200 状态 有一种不恰当的做法是,即使发生错误,也返回200状态,把错误信息放在数据体里面...

1.8K10

Jenkins API+Pipeline深度实践之input的自动化

作为input提交的一部分提供的任何参数将在其余的环境中可用stage。..."valueOfParam2" } ] } 如果没有发送有效的json参数,则流水线也将继续进行,只是不会获得任何参数(这也可能导致流水线最终执行失败),如果成功则返回302状态并重定向到用户界面...必须填写input id,因此要从外部连接到的input步骤配置唯一的id 也可以使用下面的url,如果流水线成功,则返回状态200且响应为 http://<Jenkins URL...而其余时间发送请求都会返回404状态,此时是无法接收post请求的,因此想要自动化执行input并不只是简单的向接口发送POST请求了 我这里的解决思路: 在发送流水线开始执行的请求后,立即通过代码循环请求并判断接口地址返回的状态是否是...上最终的部分代码 def auto_job_input(self, server_url, job_name, build_number): """ 根据input阶段生成的url http状态

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

【融职培训】Web前端学习 第8章 egg基础教程5 restful接口

服务器返回的响应是204(无内容),表示删除成功。如果试图获取一个不存在的资源,服务器会返回错误的响应404(当客户端想要删除一个资源时,可以发送一个DELETE请求。未找到)。...假设我们发送了一个DELETE请求,然后连接超时了,我们没有收到响应信息,所以我们无法知道资源是否被正确地删除了,但是我们可以利用DELETE请求的幂等性特性,再次发送DELETE请求并不断重试直到收到服务器响应为止...客户端一般通过GET请求获取资源表述,然后进行进行修改,最后将修改后的表述作为PUT请求的负载数据发送回服务器,修改完成后,服务器返回200或204响应。 PUT请求也是幂等的。...GET请法语最常见的响应200(OK)。 GET被定义为安全的HTTP方法,这是因为向服务器发送一条或多条GET请求对资源的影响和没有发GET请求一样,不会对既有资源有作何影响。...下面两个方法是客户端在分析研究API的时候经常使用到的(可以简单了解一下) HEAD 获取服务器发送过来的头信息(不含资源表述信息)。

34720

Web前端学习 第8章 egg基础教程5 restful接口

服务器返回的响应是204(无内容),表示删除成功。如果试图获取一个不存在的资源,服务器会返回错误的响应404(当客户端想要删除一个资源时,可以发送一个DELETE请求。未找到)。...假设我们发送了一个DELETE请求,然后连接超时了,我们没有收到响应信息,所以我们无法知道资源是否被正确地删除了,但是我们可以利用DELETE请求的幂等性特性,再次发送DELETE请求并不断重试直到收到服务器响应为止...客户端一般通过GET请求获取资源表述,然后进行进行修改,最后将修改后的表述作为PUT请求的负载数据发送回服务器,修改完成后,服务器返回200或204响应。 PUT请求也是幂等的。...GET请法语最常见的响应200(OK)。 GET被定义为安全的HTTP方法,这是因为向服务器发送一条或多条GET请求对资源的影响和没有发GET请求一样,不会对既有资源有作何影响。...下面两个方法是客户端在分析研究API的时候经常使用到的(可以简单了解一下) HEAD 获取服务器发送过来的头信息(不含资源表述信息)。

54930

http报文详解

响应行 响应行包括了http协议版本,响应状态以及原因短语。这三个字段之间由空格符分隔,例如: HTTP/1.1 200 OK 这表示http版本是1.1,响应状态200,原因短语是OK。...通常用在获取资源的场景下。 HEAD HEAD 方法与 GET 方法的行为很类似,服务器在响应中只返回首部。不会返回实体的主体部分。这就允许客户端在未获取实际资源的情况下,对资源的首部进行检查。...服务器读完请求之后,还是应该为请求发送一个最终状态(它可以跳过 100 Continue 状态)。 200~299——成功状态 客户端发起请求时,这些请求通常都是成功的。...这种响应并不是非用不可的;如果实体首部来自源端服务器,响应为 200 状态的应用程序就可以将其作为一种可选项使用 204 No Content 响应报文中包含若干首部和一个状态行,没有实体的主体部分...,服务器无法满足此期望时,使用此状态

62710

HTTP消息

例如GET表示要获取资源,POST表示向服务器推送数据。 请求地址:通常是一个URL,或者是协议、端口和域名的绝对路径。 HTTP版本:定义了剩余报文的结构,作为对期望的响应版本的指示符。...使用GET的请求应该只被用于获取数据 HEAD HEAD方法请求一个与GET请求的响应相同的响应,没有响应体 POST POST方法用于将实体提交到指定的资源,通常导致状态或服务器上的副作用的更改 PUT...状态行 HTTP响应消息的起始行被称作状态行(status line),包含以下信息: 协议版本:通常为HTTP/1.1。 状态:表明请求是成功或失败。常见的状态200,404,或302。...HTTP/1.1 200 OK 复制代码 成功响应 状态 描述 200 OK 请求成功 201 Created 该请求已成功,并因此创建了一个新的资源。...状态 (**status code),表明请求是成功或失败。常见的状态200,404,或 302。 状态文本 (status text)。

70900

【RESTful】RESTful API 接口设计规范 | 示例

编辑、请求、删除 响应 格式:状态行、消息报头、响应正文 状态行格式:HTTP-Version Status-Code Reason-Phrase CRLF 如: HTTP/1.1 200 OK 常用响应状态...状态:当客户端发送一个请求时,服务端应当响应什么状态 错误处理:如当发现客户端传入的参数有问题时,该返回什么样的状态信息。...animal_type_id = 1 :指定筛选条件 状态 服务器向用户返回的状态和提示信息,使用标准的HTTP状态 200 OK 服务器成功返回用户请求的数据 201 CREATED 新建或修改数据成功...例如创建用户资源时需要用户名、密码,而前端只提供用户名字段,那么就要返回一个422 状态,并返回错误信息:”密码不能为“ 500 INTERNAL SERVER ERROR 服务器内部错误,此时服务端无法处理任何请求...collections/identity : 返回完整的资源对象 PATCH/collections/identity : 返回被修改的属性 DELETE/collections/identity : 返回一个204状态响应体

1.2K20

Postman----API接口测试神器

Postman是一个通过向Web服务器发送请求并获取响应来测试API的应用程序。...有以下四种方法: POST请求:创建或更新数据 PUT请求:更新数据 GET请求:用于检索/获取数据。...2.HTTP响应——在发送请求时,API发送响应,包括正文,Cookie,标头,测试,状态代码和API响应时间。 Postman在不同的选项卡中组织正文和标题。...完成API调用所花费的时间的状态代码显示在另一个选项卡中。 有许多状态代码,我们可以从这些代码验证响应。 200  - 成功请求。 201  - 成功请求并创建了数据。 204  - 响应。...毫秒: tests["Response time is less than 200ms"] = responseTime < 200; 检查成功的POST请求状态代码: tests["Successful

3.8K30

用ASP.NET Core 2.0 建立规范的 REST API -- GET 和 POST

状态 状态是非常重要的,因为只有状态会告诉API的消费者: 请求是否如预期的成功,或者失败 如果出现了错误,谁该为这个错误负责 下面再列举一下web API会用到的状态200级别,表示成功:...500级别,服务器错误: 500 - Internal server error,这表示是服务器发生了错误 回到刚才的那两个方法,默认情况下 JsonResult会返回200 OK状态,可以去修改JsonResult...以支持其它的状态。...但是Controller里提供了一些帮助方法返回IActionResult并指定特定的状态,针对200,就是Ok()方法。 ? 这时就不需要手动返回JsonResult了。...还是自己处理一下比较好,可以在Action里面使用try catch: ? 这里由于是服务器的错误,所以应该返回500状态 Internal Server Error。

1.5K10

RESTful规范

服务器向用户返回的状态和提示信息,常见的有以下一些(方括号中是该状态对应的HTTP动词)。...状态的完全列表参见这里 URI失效 随着系统发展,总有一些API失效或者迁移,对失效的API,返回404 not found 或 410 gone;对迁移的API,返回 301重定向。...不要发生了错误给2xx响应,客户端可能会缓存成功的http请求; 2.     正确设置http状态,不要自定义; 3.     ...Response body提供 即:返回的信息中将error作为键名,出错信息作为键值即可 1)错误的代码(日志/问题追查); 2)错误的描述文本(展示给用户)。...常用的http状态及使用场景: 状态 使用场景 400 bad request 常用在参数校验 401 unauthorized 未经验证的用户,常见于未登录。

1.9K00

关于“Python”的核心知识点整理大全49

要设置颜色, 可使用RotateStyle,并将LightColorizedStyle作为基本样式。...第一部分(https://api.github.com/)将请求发送到GitHub网站中API调用的部分;接下来的一部分(search/repositories)让API搜索GitHub上的所有仓库...响应对 象包含一个名为status_code的属性,它让我们知道请求是否成功了(状态200表示请求成功)。 在4处,我们打印status_code,核实调用是否成功了。...输出如下: Status code: 200 dict_keys(['items', 'total_count', 'incomplete_results']) 状态200,因此我们知道请求成功了...执行更复杂的API调用时,程序应检查这个值。 17.1.5 处理响应字典 将API调用返回的信息存储到字典中后,就可以处理这个字典中的数据了。下面来生成一些 概述这些信息的输出。

13310

13 个设计 REST API 的最佳实践

你可能知道,HTTP 中你可以返回带有 200 状态的错误响应,这是十分糟糕的。不要这么做,你应当返回与返回错误类型相一致的具有一定含义的状态。...当然可以,不过让我讲一个故事: 我曾经使用过一个 API,对于它返回的所有响应的状态均是 200 OK,同时通过响应数据中的 status 字段来表示当前的请求是否成功,比如: {..."status": "success", "data": {} } 所以,虽然状态200 OK,但我却不能绝对确定请求是否成功,事实上,当错误发生时,这个 API 会按如下代码片段返回响应...下面是我推荐的与动词相对应的状态: GET: 200 OK POST: 201 Created PUT: 200 OK PATCH: 200 OK DELETE: 204 No Content...不要嵌套资源 使用 REST API 获取资源数据,通常情况下会直接获取多个或者单个,当我们需要获取相关联的资源时,该怎么做呢?

3.5K20

HarmonyOS学习路之开发篇—AI功能开发(文档检测校正)

调用IDocRefine的docDetect()方法,获取检测结果。...同步模式调用成功时,该函数返回结果0。异步模式调用请求发送成功时,该函数返回结果700。 调用IDocRefine的docRefine()方法,获取校正结果。...} }; 调用VisionManager.init()方法,将此工程的context和已经定义的connectionCallback 作为入参,建立与能力引擎的连接,context应为ohos.aafwk.ability.Ability...结果定义如下表: 结果 说明 0 成功 -1 未知错误 -2 不支持的功能或接口 -3 内存分配失败或创建对象失败 -4 所需库加载失败 -10 引擎开关已经关闭 101 失败 102 超时 200...结果定义如下表: 结果 说明 0 成功 -1 未知错误 -2 不支持的功能或接口 -3 内存分配失败或创建对象失败 -4 所需库加载失败 -10 引擎开关已经关闭 101 失败 102 超时 200

18120

网络爬虫原理解析「建议收藏」

所以利用网络抓包,是网络爬虫的第一步,其可以直观的看到数据请求的真实地址,请求方式(post、get请求),数据的类型(html还是Json数据) 5、HTTP状态说明 HTTP状态(HTTP Status...当我们打开一个网页时,如果网页能够返回数据,也就是说影响成功了,一般状态响应都是200。...当然状态响应,包括很多内容,下面列举了,状态响应,及其表示的含义,其中加错的是在爬虫中经常遇到的: 100:继续 客户端应当继续发送请求。...102:继续处理 由WebDAV(RFC 2518)扩展的状态,代表处理将被继续执行。 200 :请求成功 处理方式:获得响应的内容,进行处理 201:请求完成,结果是创建了新资源。...处理方式:丢弃 300:该状态不被HTTP/1.0的应用程序直接使用, 只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。

37320

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

这些系统按照自己的理解,采用了类似REST API的部分形式(如用GET/POST/PUT/DELETE进行CURD),更多的是随意设计,搞出了REST-RPC式,甚至是RPC式的API。...REST更强调的是资源状态。资源状态存储在服务器端,客户端通过REST API,指定请求方法、资源路径和资源表述(可以包含应用状态),对资源的状态进行增删查改。...4) 返回 REST使用HTTP返回来表示请求的结果。如果使用规范的REST API,那么根据HTTP返回就能确定很多信息。常见的HTTP返回如下: 200(OK):表示请求成功。...202(Accepted):表示请求已被接受,尚未处理,一般用于异步操作。 204(No content):表示资源为。...既减少了私有协议的兼容性问题,又能作为标准适用于所有的RESTful架构。 5) 返回内容 REST API的返回内容应该是资源的表述。

2.1K173

腾讯云七层CLB重定向完全解析:配置、安全、实践优化及常见错误

307 307状态明确指出客户端应当使用相同的请求方法(如GET、POST等)重定向到新URL,而不是像301/302状态那样默认将请求方法更改为GET。...在RS上测试:第一个红圈应为没有携带domain.com作为HOST,收到了响应,第二个红圈为正常响应。...此时我们通过VIP的方式,访问LB 80监听器:LB收到请求后匹配默认域名,域名下没有任何RS服务,STGW代答了200状态,返回内容长度为0。...当HOST指定为newdomain.com时,才会匹配我们的业务域名,RS正常响应数据,其它非法域名均由STGW代答200状态,不返回任何数据:3.根URL带来的安全问题想象一种场景,客户端在使用诸如...,则STGW会代答404:STGW代答200OK和代答404消耗的字节数:可以清晰看到,404的消耗会比200 OK占用大,并且扫描软件最终都是判断200 OK状态为正常,因此200 OK代答行为甚至可以混淆客户端的恶意扫描对于结果的判断

4912318

HTTP 304状态的详细讲解

HTTP 304状态的详细讲解 304状态或许不应该认为是一种错误,而是对客户端有缓存情况下服务端的一种响应。...: 一些常见的状态为: 200 – 服务器成功返回网页 404 – 请求的网页不存在 503 – 服务器超时 下面提供 HTTP 状态的完整列表。...您也可以访问 HTTP 状态上的 W3C 页获取更多信息。 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态。 100(继续) 请求者应当继续提出请求。...2xx (成功) 表示成功处理了请求的状态200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。...407(需要代理授权) 此状态与 401(未授权)类似,指定请求者应当授权使用代理。

3.9K20

RESTful API接口设计规范与最佳实践

当一个查询的结果为的时候,为什么有的接口设计会返回异常(HTTP状态404或其他),有的则是会返回请求成功(HTTPS状态200),但是返回结果是数组或者null等表示结果为的标识?...最后总结一下这个问题就是,强烈建议严格按照HTTP状态的定义区分接口响应的HTTP状态,错误码作为一种细分的补充。 Part4HTTP状态不存在,返回 200 还是 404 ?...问题: 当一个查询的结果为的时候,为什么有的接口设计会返回异常(HTTP状态404或其他),有的则是会返回请求成功(HTTPS状态200),但是返回结果是数组或者null等表示结果为的标识?...但是这是建立在业务场景规定,查询结果为的时候属于异常的前提上。 1返回HTTP状态 200 当我们查询一个资源但是结果为,到底要不要把本次请求视为一个404的异常是取决于业务场景。...,那么我返回的结果自然是的,并不能视为一个异常,这时候返回一个200的HTTP状态,然后在响应结果里面明确结果是的才是正确的做法。

61610
领券