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

HTTP接口设计

条件请求 304 Not Modified : 资源自从上次请求后没有再次发生变化,主要使用场景在于实现数据缓存 409 Conflict : 请求操作和资源的当前状态存在冲突。...主要使用场景在于实现并发控制 客户端错误 400 Bad Request : 请求体包含语法错误 401 Unauthorized : 需要验证用户身份,如果服务就算是身份验证后也不允许客户访问资源...服务端错误 500 Internal Server Error : 服务遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。...这个时候可以使用 Last-Modified 和/或 ETag 头来实现条件请求,支持乐观并发控制。 下文只考虑使用 PUT 和 PATCH 方法更新资源的情况。...ETag 的历史值匹配,但资源已经被修改过的时候,返回状态码 409 Conflict 客户端发起的请求提供的条件符合实际值,那就更新资源,响应 200 OK 或者 204 No Content ,并且包含更新过的

1.8K20

ElasticSearch权威指南学习(文档)

使用index API更新文档的时候,我们读取原始文档,做修改,然后将整个文档(whole document)一次性重新索引。...表面看来,我们似乎是局部更新了文档的位置,内部却是像我们之前说的一样简单的使用update API处理相同的检索-修改-重建索引流程,我们也减少了其他进程可能导致冲突的修改。...但如果这是个新页面,我们并不确定这个计数存在与否。当我们试图更新一个不存在的文档,更新将失败。 在这种情况下,我们可以使用upsert参数定义文档来使其不存在时被创建。...更新冲突 对于多用户的局部更新,文档被修改了并不要紧。例如,两个进程都要增加页面浏览量,增加的顺序我们并不关心——如果冲突发生,我们唯一要做的仅仅是重新尝试更新既可。...每个文档的检索和报告都是独立的 更新时的批量操作 就像mget允许我们一次性检索多个文档一样,bulk API允许我们使用单一请求来实现多个文档的create、index、update或delete。

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

使用ASP.NET Core 3.x 构建 RESTful API - 3.3 状态码、错误故障、ProblemDetails

绝大多数的Web API都不需要使用这类状态码。...例如请求的媒体类型是application/xml,但是Web API仅支持application/json类型,并且API不会将application/json作为默认格式提供; 409 -...Conflict,表示请求与服务当前状态冲突。...通常指更新资源时发生的冲突,例如,当你编辑某个资源的时候,该资源在服务上又进行了更新,所以你编辑的资源版本和服务的不一致。当然有时候也用来表示你想要创建的资源在服务上已经存在了。...ProblemDetails是基于 RFC7807 这个规范,目的是让 HTTP 响应可以携带错误详细信息,而不是只返回一个错误的状态码。

1.6K20

​你回去了解一下RESTful风格

)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改,则不过更新资源(乐观锁) 200(OK)- 如果现有资源已被更改...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...而github的API则支持使用PATCH方法来进行issue的更新,例如: PATCH /repos/:owner/:repo/issues/:number 不过,需要注意的是,像PATCH这种不是...例如文本资源可以采用html、xml、json等格式,图片可以使用PNG或JPG展现出来。

80510

实用 | Apache Hadoop 3.0.0-alpha2版本发布

类路径隔离本质上是一个版本依赖冲突的问题;Hadoop客户端可能需要在应用程序的类路径上存在特定版本的Java库,但应用程序已经使用了该特定版本Java库的不兼容版本。...这可能导致在运行时产生ClassNotFoundException或NoSuchMethodError异常,或者其它未知的、未经测试的错误。...2 支持Microsoft Azure Data Lake和Aliyun对象存储系统 针对Microsoft Azure Data Lake和Aliyun对象存储系统,Apache Hadoop增加了文件系统连接...,允许用户通过正常的Hadoop文件系统API与这些存储系统进行交互。...这些机会性容器最适用于短时间运行的任务。机会性容器默认由中央RM分配,也支持外部(潜在分布式)调度程序对机会性容器进行排队。 欲了解更多详细信息,请参阅相关文档。

64540

快速学习-RESTFul设计风格

2、API设计六要素 资源路径(URI)、HTTP动词(Method)、过滤信息(query-string)、状态码(Status-code)、错误信息(Error)、返回结果(Result) ?...id=100 2)HTTP动词(请求方式) 对于资源, 一般有4个操作, CURD(增/删/改/查) GET: 从服务获取资源(一项或多项) POST: 在服务新建一个资源 PUT: 在服务更新资源...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...通常以Json格式返回: { “error”: “错误信息”, } 6)返回结果 针对不同的操作, 服务需要返回的结果应该符合这样的规范 GET /collections – 返回资源列表(数组) GET

1.2K20

如何平滑切换线上Elasticsearch索引

前置条件之使用别名访问索引 重建索引的问题是必须更新应用中的索引名称,索引别名就是用来解决这个问题的。...: 数据迁移 使用ES中提供的reindex api就可以将数据copy到新索引中,比如: curl --location --request POST 'http://localhost:9200/_...如果不设置version_type字段,默认为internal,ES会直接将文档转存储到目标索引中(dest index),直接覆盖任何具有相同类型和id的document,不会产生版本冲突。...此时可能会有冲突产生,比如当把op_tpye设置为create,对于产生冲突现象,返回体中的 failures 会携带冲突的数据信息【类似详细的日志可以查看】。...redindex就变成异步任务,返回的是taskID,查看进度可以通过 _tasks API 进行查看。

80710

Django RESTful API设计指南

) GET /zoos/id/ 获取某个指定动物园的信息(详细信息) POST /zoos 新建一个动物园 PUT /zoos/id/ 更新某个指定动物园的信息 DELETE /zoos/id/ 删除某个指定动物园...202 Accepted [*] 表示一个请求已经进入后台排队(异步任务 204 No Content [DELETE] 用户删除数据成功。...403 Forbidden [*] 服务拒绝请求,表示用户得到授权(与401错误相对),但是访问是被禁止的。已经登录,但是禁止访问某些页面。...500 Internal Server Error [*] 服务发生错误,用户将无法判断发出的请求是否成功 502 Server Error [*] 后端服务挂掉或者服务压力过大,nginx接到的请求无法及时传递给后端的服务处理...#4 curl 命令参考 curl -i -H "Content-Type: application/json" -X DELETE http://localhost:5632/blog/api/articles

1.1K20

Istio可观测性

本节将安装Kiali插件并使用基于Web的图形用户界面查看网格和Istio配置对象的服务图,最后,使用Kiali Developer API以consumable JSON的形式生成图形数据。...curl命令 curl http://GATEWAY_URL/productpage 使用watch持续访问 watch -n 1 curl -o /dev/null -s -w %{http_code...关于Kiali Developer API 为了生成表示图表和其他指标,健康,以及配置信息的JSON文件,可以参考Kiali Developer API。...例如,可以通过访问$KIALI_URL/api/namespaces/graph?namespaces=default&graphType=app来获取使用app 图表类型的JSON表示格式。...Kiali Developer API建立在Prometheus查询之上,并取决于标准的Istio metric配置,它还会执行kubernetes API调用来获取服务的其他详细信息

2.8K20

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

在我的职业生涯中,我使用了数百个 REST API 并制作了数十个。由于我经常在 API 设计中看到相同的错误,因此我认为写下一组最佳实践可能会更好。...有很多层软件会对请求返回 404,其中有些可能是你无法控制的: 配置错误的客户端点击了错误的 URL 配置错误的代理(客户端和服务端) 负载平衡器配置错误 服务应用程序中的路由表配置错误 返回...但是,如果您正在构建客户端并且 API 不提供另一种幂等机制,那么这就是您必须做的。 当冲突发生时......既然您的 API 提供了一种(良好的)幂等机制,那么还有一个主要考虑因素:如何通知客户端存在冲突?...在 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数的重复请求或在冲突时返回现有 ID,使 API 具有幂等性。

18020

RESTful 架构详解

)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改,则不过更新资源(乐观锁) 200(OK)- 如果现有资源已被更改...)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持 500 (...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...而github的API则支持使用PATCH方法来进行issue的更新,例如: PATCH /repos/:owner/:repo/issues/:number 不过,需要注意的是,像PATCH这种不是HTTP...安全性不代表请求不产生副作用,例如像很多API开发平台,都对请求流量做限制。像github,就会限制没有认证的请求每小时只能请求60次。

96020

使用SemanticKernel 进行智能应用开发(2023-10更新

由于SK来自Microsoft,因此它有一个用于Microsoft Graph [14]的OOTB插件集成了大量的Microsoft 服务。...使用Semantic Kernel记录和计量请求有几个主要好处: 您可以轻松跟踪 API 使用情况和成本,因为每个令牌对应于一个计费单位。...您还可以比较不同模型和参数的令牌使用情况,以找到适合您的使用案例的最佳设置。 您可以排查请求期间可能发生的任何问题或错误,因为每个请求都会记录其提示、完成和令牌计数。...在这篇文章中,我向你介绍了如何使用SK完成各种任务的学习总结,例如创建和执行计划,编写语义和本机函数等等。.../ [8]LangChain Agents : https://docs.langchain.com/docs/components/agents/ [9]与规划协调AI: https://learn.microsoft.com

1K30

RESTful架构详解 转

)- 服务端当前无法处理请求 POST 不安全且不幂等 使用服务端管理的(自动产生)的实例号创建资源 创建子资源 部分更新资源 如果没有被修改,则不过更新资源(乐观锁) 200(OK)- 如果现有资源已被更改...)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持 500 (...(conflict)- 通用冲突 412 (Precondition Failed)- 前置条件失败(如执行条件更新时的冲突) 415 (unsupported media type)- 接受到的表示不受支持...(conflict)- 通用冲突 500 (internal server error)- 通用错误响应 503 (Service Unavailable)- 服务端当前无法处理请求 下面我们来看一些实践中常见的问题...安 全性不代表请求不产生副作用,例如像很多API开发平台,都对请求流量做限制。像github,就会限制没有认证的请求每小时只能请求60 次。

81931

MICROSOFT EXCHANGE – 防止网络攻击

应用关键补丁和解决方法 Microsoft 建议删除以下注册表项,以防止对 Exchange 服务的网络环回地址提出 NTLM 身份验证请求。...Microsoft 已发布补丁,通过降低对 Active Directory 的权限来修复各种版本的 Exchange 服务的问题。...同样,禁用跨组织的 Exchange Web 服务邮箱访问将产生相同的结果。...Get-Mailbox | Set-CASMailbox -EwsEnabled $false 威胁参与者将无法通过 Exchange 进行身份验证以发送 API 调用,他们将在其终端中收到以下错误...目前,默认情况下禁用此设置,但 Microsoft 打算发布一个安全更新(2020 年 1 月),以启用 LDAP 签名和 LDAP 绑定。管理员可以通过修改组策略管理编辑手动执行更改。

3.8K10
领券