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

Restful API 的设计规范

zoo=1&area=3; 对Composite资源的访问 服务器端的组合实体必须在uri中通过父实体的id导航访问。...错误处理 不要发生了错误但给2xx响应,客户端可能会缓存成功的http请求; 正确设置http状态码,不要自定义; Response body 提供 1) 错误的代码(日志/问题追查);2) 错误的描述文本...业务异常由自己的业务代码抛出,表示一个用例的前置条件不满足、业务规则冲突等,比如参数校验不通过、权限校验失败。...业务类异常必须提供2种信息: 如果抛出该类异常,HTTP 响应状态码应该设成什么; 异常的文本描述; 在Controller层使用统一的异常拦截器: 设置 HTTP 响应状态码:对业务类异常,用它指定的...异步任务 对耗时的异步任务,服务器端接受客户端传递的参数后,应返回创建成功的任务资源,其中包含了任务的执行状态。客户端可以轮训该任务获得最新的执行进度。

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

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

    zoo=1&area=3; 对Composite资源的访问 服务器端的组合实体必须在uri中通过父实体的id导航访问。...错误处理 不要发生了错误但给2xx响应,客户端可能会缓存成功的http请求; 正确设置http状态码,不要自定义; Response body 提供 1) 错误的代码(日志/问题追查);2) 错误的描述文本...业务异常由自己的业务代码抛出,表示一个用例的前置条件不满足、业务规则冲突等,比如参数校验不通过、权限校验失败。...业务类异常必须提供2种信息: 如果抛出该类异常,HTTP 响应状态码应该设成什么; 异常的文本描述; 在Controller层使用统一的异常拦截器: 设置 HTTP 响应状态码:对业务类异常,用它指定的...403 forbidden 无权限 404 not found 资源不存在 500 internal server error 非业务类异常 503 service unavaliable 由容器抛出,

    1.8K10

    浅学前端:Vue篇(一)

    #app 就是一个id选择器: 可以看到/public/index.html里有这个标签,所以解析后的虚拟节点放到这里。...我们打开F12,选中Hello world可以看到index.html里的id="app">被替换成了解析后的虚拟节点: 1....响应格式 名称 含义 data 响应体数据 ⭐️ status 状态码 ⭐️ headers 响应头 200 表示响应成功 400 请求数据不正确 age=abc 401 身份验证没通过 403 没有权限...(这个是身份验证通过了,但是你要访问更高权限的资源时,会出现403) 404 资源不存在 405 不支持请求方式 post 500 服务器内部错误 注意: 这个status响应状态码与后端经常返回的code...,这些代码具有一定通用性,我们没有必要在每个vue组件里都写一遍,所以像这种具有通用性的代码,我们可以把他们单独抽到一个js文件里: /src/util/myaxiso.js // 导入axiso import

    27100

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

    通过使不同类型的 ID 具有自描述性,您可以显着改善 API 的人机工程学。...当调用(例如)GET /things/{thing_id}请求一个不存在的东西时,响应应表明:1)服务器理解了您的请求;2)没有找到该东西。遗憾的是,404 响应并不能保证 #1。...但 GET、PUT、PATCH 和其他方法也存在类似的问题。 你可以使用 404,但返回一个自定义的错误正文,并要求客户端检查错误正文是否正确。这会给懒惰的客户端程序员带来麻烦。...但是,如果您正在构建具有多层 REST 服务的大型系统,则可以通过预先建立标准错误格式来为自己省去很多麻烦。...在 409 响应正文中提供原始 ID 亮点:通过允许具有相同参数的重复请求或在冲突时返回现有 ID,使 API 具有幂等性。

    26720

    前端二面vue面试题(边面边更)1

    响应式接下来也就是 Vue.js 响应式核心部分。...,可能是请求失败,也可能是请求获得了服务器响应,但是返回的是错误状态。...)进行强制刷新 (不建议)PS:vue3是用过proxy实现数据响应式的,直接动态添加新属性仍可以实现数据响应式Vue项目本地开发完成后部署到服务器后报404是什么原因呢如何部署前后端分离开发模式下,前后端是独立布署的...我们先还原一下场景:vue项目在本地时运行正常,但部署到服务器中,刷新页面,出现了404错误先定位一下,HTTP 404 错误意味着链接指向的资源不存在问题在于为什么不存在?.../#/login 只有 website.com 会被包含在请求中 ,因此对于服务端来说,即使没有配置location,也不会返回404错误解决方案看到这里我相信大部分同学都能想到怎么解决问题了,产生问题的本质是因为我们的路由是通过

    95540

    Web Worker 中的 importScripts 和 baseHref 同源策略绕过问题

    当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。 worker线程中的代码具有独立的执行环境,有兴趣的同学可以去看相关文档。...浏览器这一行为是正确的,在加载可能泄露重要信息的站点的脚本或者其他文件时(比如ID,搜索记录等)保护了终端用户。...但出于研究漏洞的目的,我们对这一小部分比较感兴趣: ? 既然我们在相同的正常页面下,那就通过Worker绕过限制吧。 通常情况下,我们不能再不同的域下面创建worker。...你一定在想”仅仅泄漏成员的名称“不算什么大事,对吗?但这并不太对,因为很多站点是根据用户返回内容的,而且如果我们能泄漏足够多的数据,我们最终可能猜到关于她的成吨信息。...作为奖励,我们会通过主线程获取到的参数,允许我们通过这个函数获取到一点更多的自由信息,可是先别兴奋(一颗赛艇),这是在我们的上下文源上运行的。

    1.7K40

    Django 学习笔记 1.3 视图和模板

    问题结果页——展示某个投票的结果。 投票处理器——用于响应用户为某个问题的特定选项投票的操作。 在 Django 中,网页和其他内容都是从视图派生而来。...这就是为什么尽管我们没有像在第二部分中那样修改 DIRS 设置,Django 也能正确找到 polls 的模板位置的原因。...() 尝试用 get() 函数获取一个对象,如果不存在就抛出 Http404 错误也是一个普遍的流程。...还有,为什么模型 API 不直接抛出 ObjectDoesNotExist 而是抛出 Http404 呢? 因为这样做会增加模型层和视图层的耦合性。...' question.id %}">{{ question.question_text }} 这个标签的工作方式是在 polls.urls 模块的 URL 定义中寻具有指定名字的条目。

    1.2K20

    前端面试之JavaScript(总结)

    当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。...URL 302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。...401——请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 402——保留有效ChargeTo头响应 403——禁止访问,服务器收到请求,但是拒绝提供服务 404——一个...404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。...Document 对象是 HTML 文档的根节点与所有其他节点(元素节点,文本节点,属性节点, 注释节点) Document 对象使我们可以通过脚本对 HTML 页面中的所有元素进行访问 Document

    1K20

    在 JS 中如何使用 Ajax 来进行请求

    在本教程中,我们将学习如何使用 JS 进行AJAX调用。 1.AJAX 术语AJAX 表示 异步的 JavaScript 和 XML。 AJAX 在 JS 中用于发出异步网络请求来获取资源。...如果来自服务器的响应带有任何状态码(如200、404、500),则promise将被解析。响应对象可以在.then()块中处理。...错误处理 请注意,对于成功的响应,我们期望状态代码为200(正常状态),但是即使响应带有错误状态代码(例如404(未找到资源)和500(内部服务器错误)),fetch() API 的状态也是 resolved...将响应代码(例如404、500)视为可以在catch()块中处理的错误,因此我们无需显式处理这些错误。...: 1, title: "delectus aut autem", completed: false } 我们可以看到,我们直接使用response获得响应数据。

    8.9K20

    浅析YSlow-23条规则

    id="my_id">Trigger $("#my_id").click(function(e){...// 其他的代码 }) 优点: 让够响应键盘事件并获得焦点(从而屏幕阅读器能够读出背后的内容,增强可访问性) 优雅降级,在网络连接很差,还没有加载到CSS的时候,依然有手型与正常的...除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。...它比last-modified date更具有弹性,例如某个文件在1秒内修改了10次,Etag可以综合Inode(文件的索引节点(inode)数),MTime(修改时间)和Size来精准的进行判断,避开...尤其是如果请求一个不存在的脚本文件,因为浏览器在请求脚本文件的时候,即便是返回404,它也会尝试去按照Javascript的方式解析响应中的内容。

    1.3K30

    浅析YSlow-23条规则

    id="my_id">Trigger $("#my_id").click(function(e){...// 其他的代码 }) 优点: 让够响应键盘事件并获得焦点(从而屏幕阅读器能够读出背后的内容,增强可访问性) 优雅降级,在网络连接很差,还没有加载到CSS的时候,依然有手型与正常的...除了节省流量,改善用户的浏览体验外,另一个潜在的好处是Gzip与搜索引擎的抓取工具有着更好的关系。...它比last-modified date更具有弹性,例如某个文件在1秒内修改了10次,Etag可以综合Inode(文件的索引节点(inode)数),MTime(修改时间)和Size来精准的进行判断,避开...尤其是如果请求一个不存在的脚本文件,因为浏览器在请求脚本文件的时候,即便是返回404,它也会尝试去按照Javascript的方式解析响应中的内容。

    2K81

    Express(一) ——简单入门

    ", (req, res) => { res.send(`根据ID查询单个任务, id是${req.params.id}`); // 通过req.params.id来获取动态的路径参数id });...todo) { // 任务id不存在 return res.status(404).end(); // 需要return阻止代码继续往下执行,否则会出现既发送404又发送200.../db.js"); const app = express(); app.get("/todos", async (req, res) => { try { // 处理异常的必要性:没有抛出异常的话...todo) { // 任务id不存在 return res.status(404).end(); // 需要return阻止代码继续往下执行,否则会出现既发送404又发送200...(不过,也可以在结束的同时发送响应) res.send() 发送各种类型的响应。 4.1 res.end() 结束响应流程。用于在没有任何数据的情况下快速结束响应。

    3.6K20

    有哪些前端面试题是面试官必考的_2023-03-01

    2. 3XX (Redirection 重定向状态码) 3XX 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。 (1)301 Moved Permanently 永久重定向。...(4)504 Gateway Timeout 该状态码表示网关或者代理的服务器无法在规定的时间内获得想要的响应。他是HTTP 1.1中新加入的。 使用场景:代码执行时间超时,或者发生了死循环。 5....总结 (1)2XX 成功 200 OK,表示从客户端发来的请求在服务器端被正确处理 204 No content,表示请求成功,但响应报文不含实体的主体部分 205 Reset Content,表示请求成功...策略三(element diff): 对于同一层级的一组子节点,通过唯一id区分。 tree diff React通过updateDepth对Virtual DOM树进行层级控制。...component diff:如果不是同一类型的组件,会删除旧的组件,创建新的组件 图片 element diff:对于同一层级的一组子节点,需要通过唯一 id 进行来区分 如果没有 id 来进行区分,

    1.5K00
    领券