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

REST API设计指导——译自Microsoft REST API Guidelines(三)

关于REST API的书籍很多,但是完整完善实践丰富的设计指导并不多见,我们有幸看到了微软团队的作品——Microsoft REST API Guidelines,因此才有了此篇内容。...错误,或更具体的服务错误,被定义为客户端将无效数据传递给服务并且服务明确地拒绝该数据。...译者注:错误可以理解成客户端参数错误,通常返回“4XX”状态码,并不影响整体的API使用。...延迟定义为具体 API 被调用完成所需的时长, 尽可能使用客户端调用进行测量。...对于长时间运行的 API,很可能出现初始请求成功,且后续每次去获取结果时 API 也处于正常运行(每次都回传 200)中,但其底层操作已经失败了的情况。

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

    2022react高频面试题有哪些

    在调用setState 之后发生了什么状态合并,触发调和: setState函数之后,会将传入的参数对象与当前的状态合并,然后出发调用过程根据新的状态构建虚拟dom树 经过调和过程,react会高效的根据新的状态构建虚拟...HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件的函数。...HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。简言之,HOC是一种组件的设计模式,HOC接受一个组件和额外的参数(如果需要),返回一个新的组件。...data => ( Hello {data.name})}/>由此可以看到,render props的优缺点也很明显∶优点:数据共享、代码复用,将组件内的state作为props传递给调用者...(1)代码中调用 setState 函数之后,React 会将传入的参数对象与组件当前的状态合并,然后触发所谓的调和过程(Reconciliation)。

    4.5K40

    drf的接口文档生成与管理

    文档路由对应的视图配置为rest_framework.documentation.include_docs_urls 配置url主路由,其中参数title为接口文档网站的标题 from rest_framework.documentation...'LOGIN_URL': 'rest_framework:login', 'LOGOUT_URL': 'rest_framework:logout', # 控制API列表的显示方式 None...'SHOW_REQUEST_HEADERS': True, # 切换使用Django Auth作为身份验证机制 将其设置为True将会在Swagger UI上显示一个登录/注销按钮,并将...2.0规范的API文档自动化生成工具,能够生成比原生swagger更为友好的API文档界面 目前的兼容性如下 Django Rest Framework: 3.10, 3.11, 3.12 Django...patterns: 自定义的urlpatterns, 该参数直接透传至SchemaGenerator urlconf: 描述从哪个文件获取路由配置, 缺省值是urls, 该参数直接透传至SchemaGenerator

    4.8K10

    Kubernetes资源创建流程解析

    ,并且对资源的相关状态更新操作也都是通过apiserver进行的,所以说白了组件之间的通信就是通过apiserver REST API和apiserver watch API进行的 Pod创建工作流 下面图示为...Pod的工作流程图 和上面的组件通信一致: 第一步,kubelet将yaml发送给API 第二步通过apiserver REST API 经过KubeConfig认证通过后,创建一个Pod 然后apiserver...检测到有一个新的Pod被调度过来了,他就将该Pod的相关数据传递给后面的容器进行时container runtime,比如Docker,让他们去运行该Pod,调用CNI接口创建Pod网络,调用CRI启动容器...中,当然最后也是写入到etcd中去的 Deploy创建工作流 第一步,kubelet将yaml发送给API 第二步通过apiserver REST API 经过KubeConfig认证通过后,创建一个...这个时候目标Node节点上的kubelet通过apiserver watch API检测到有一个新的Pod被调度过来了,他就将该Pod的相关数据传递给后面的容器进行时container runtime,

    63710

    「无服务器架构」Openwhisk 系统架构概览

    它是实际REST API(基于Akka和Spray)的基于Scala的实现,因此可以用作用户可以做的所有事情的接口,包括在OpenWhisk中对实体的CRUD请求和动作的调用(这就是我们的现在正在做)。...动作记录主要包含要执行的代码(如上所示)和要传递给动作的默认参数,并与实际调用请求中包含的参数合并。它还包含执行时对其施加的资源限制,例如允许使用的内存。...为了调用该动作,控制器将消息发布到Kafka,其中包含要调用的动作和传递给该动作的参数(在本例中为无)。该消息发送给控制器从上方从可用调用者列表中选择的调用者。...简而言之,对于每个动作调用,都会产生一个Docker容器,该动作代码被注入,并使用传递给它的参数执行该操作代码,获得结果,该容器被销毁。这也是进行大量性能优化以减少开销和缩短响应时间的地方。...它还包含操作调用的开始时间和结束时间。激活记录中有更多字段,为简化起见,这是简化版本。 现在,您可以再次使用REST API(再次从步骤1开始)以获取激活,从而获得操作结果。

    2.2K10

    Fizz Gateway网关官方入门教程——服务编排

    例子1:单API结果裁剪 本例子在编排接口中调用底层fizz-examples-rest-api服务的/user/detail接口(接口源码:UserController)来获取用户详情信息,并对该接口的响应进行裁剪以满足我们想要的数据格式...配置输入 在配置输入tab可以定义接口的入参和请求头等信息,如果不配置入参或请求头,网关会原样接收调用方传过来的所有入参或请求头,但不会对接收到的参数做任何校验。...在本例子中查询用户详情必须传userId,配置如下图所示。 ?...例子2:多API数据聚合 本例子在编排接口中并发调用底层fizz-examples-rest-api服务的/user/detail接口(接口源码:UserController)和/order/detail...例子3:多API之间传递依赖 本例子在编排接口中串行调用底层fizz-examples-rest-api服务的/weather/getMobileCodeInfo接口和/weather/getWeatherbyCityName

    1.8K10

    Go语言中常见100问题-#47 Ignoring how defer arguments and receivers ...

    参数计算求值 为了解释清楚在defer语句中,参数是如何被计算使用的,下面通过一个具体的例子进行说明。在一个函数中调用foo和bar两个函数,与此同时,根据执行情况设置处理状态。...notify和incrementCounter,并将status传递给这两个函数,status的值会根据foo和bar的执行结果被赋值不同的值。...将参数传给defer调用函数会被立即执行,然而,在闭包函数中使用的外部变量在函数执行的时候才会计算求值。...id string } func (s Struct) print() { fmt.Println(s.id) } 上面的程序延迟执行了print操作,与前面向defer调用的函数中传参一样...总结,在函数或方法上调用defer时,调用的参数会立即被计算。如果我们想改变提供给defer的参数,我们可以使用指针或闭包。对于一个方法,接收器也是立即被计算,具体的行为结果取决于接收器是值还是指针。

    58620

    JavaScript 高级应用(第二弹)

    1.1 call 最实用的 call 的用法,简单来说,我们有个函数,一般都是通过函数名直接调用执行,另一种方式就是通过函数名.call() 来调用 这样做就是改变了函数的上下文,即改变了 this 的指向...,这个新函数的 this 指定为 bind() 的第一个参数,而其他参数则作为新函数的参数,供调用使用 一、基本使用 globalThis.x = 9; // Node.js 环境 globalThis.../api/v1/rest/info") .then(res => res.json()) .then(res => { console.log(res); }); // 返回的是一个 JSON.../v1/rest/info" } } 这里怎么有两个 then?...这里实际上是简写了,使用了 ES6 的箭头函数语法,直接把网络请求拿到的值,当成函数的参数传递给下游处理 一些内置的 JavaScript API 都可以看到 callback 的影子 // 第一个参数就是要处理的函数

    63520

    无招胜有招: 看我如何通过劫持COM服务器绕过AMSI

    通过劫持COM服务器来绕过AMSI的这个问题在5月3日我们向微软递交了报告,并且微软官方已经修复了该漏洞,具体修复信息可见Build#16232中的“深度防御”补丁。...在本文中,我们的实验是一个通过PowerShell进行的AMSI测试示例,测试过程是当AMSI模块接受外部传进来的脚本块并将其传递给Defender进行分析的时候进行劫持操作,具体可见下图所示: 正如你所看到的...,AMSI接受了我们构造的恶意代码并将该代码块传递给被调用的Invoke-Expression。...如您所见,Microsoft似乎删除了对CoCreateInstance()的调用,并将其替换为直接调用DllGetClassObject()。...由于绕过修复补丁需要将二进制文件移动到用户可写位置,所以在非标准位置执行这些命令可以被当成一种异常的操作行为。

    2.7K70

    Spring Boot REST API错误处理指南

    本文将介绍在使用Spring Boot构建REST API的时候如何进行合适的错误处理。 ? 在过去几年里,使用Spring构建REST API已经成为Java开发人员的标准方法。...如果你对如何开发基本的REST API并不熟悉,那么你应该先阅读这篇关于Spring MVC的文章或另一篇有关构建Spring REST服务的文章。...下面,我们来学习如何正确地处理这些异常,并将它们包装成更好的JSON表示形式,让API客户端更容易识别。...我们将创建一个名为ApiError的类,该类用于保存REST调用期间发生错误的相关信息。...哪些信息对API消费者来说很重要? 通常重要的是要说明错误来自哪里。是否有任何输入参数发生错误?提供一些如何修复失败的呼叫的指导也很重要。

    3.3K20

    RPC和RESTful的区别

    Site : 调用点,即发生方法调用的指令流位置 // Parameter : 参数,由Caller传递给Callee的数据,即“hello world” // Retval : 返回值,由Callee...这里我们只关心方法是如何调用的,而不关心方法内部具体是如何执行的。 返回执行结果:将Callee的执行结果压栈,并将程序的指令流恢复到Call Site的下一条指令,继续向下执行。...RPC要解决的三个问题 如何表示数据 这里的数据包括传递给方法的参数和方法执行之后的返回值。也就是说一个进程把参数传给另一个进程,或者从另一个进程获取返回值,数据格式怎么表示的问题。...参数为什么要序列化呢?直接传不就行了吗?原来是要考虑不同语言、硬件、操作系统的情况。...这个标准可以非常简单,譬如直接给程序的每个方法都规定一个唯一的、在任何机器上都绝不重复的编号,调用时压根不管它是什么方法、签名是如何定义的,直接传这个编号就能找到对应的方法。

    66720
    领券