首页
学习
活动
专区
圈层
工具
发布

怎样编写好的 API?

按照 REST,DELETE 方法应该是幂等的,如果删除了某个资源,然后针对相同的资源再次调用 DELETE,它不会改变任何东西。资源应该早就已经消失了。...我们重新看一下 Slack 样例,如果我们使用 HTTP 动作来进行更多的操作会是什么样子: 我们可以使用 POST 方法发送消息到通用的通道,我们也可以使用 GET 方法从通用通道获取消息。...4 API 设计的演化 构建 API 以及现代软件最重要的部分就是适应性。如果没有适应性,开发就会变慢,在合理的时间发布特性就会变得更加困难,当面对最后截止时间的时候更是如此。...5 API 不应该限定实现 公开的 API 发布之后,它就已经完成了,是不可改变的,你就不能再去触碰它了。如果你已经有了一个设计古怪的 API,除了接受现状之外,还能做些什么呢?...这两个问题都与性能有关,如果数据抓取不足,那说明你没有高效地使用 API,所以必须要进行大量的调用。如果数据过量抓取的话,那么 API 调用的数据传输会比必要的数据传输更大,这是对带宽的一种浪费。

85520

TensorFlow 2.X,会是它走下神坛的开始吗?

API 接口,难以明了 Tensorflow 1.X 时代,静态图虽说上手稍微难了那么一丢丢,但是这并不是什么问题。既然入了机器学习的坑,这当然是能掌握的。...另一种则非常抽象,使用 tf.keras 像搭积木一样搭建模型,我们不用了解底层的架构如何搭建,只需要关注整体的设计流程即可。...它要与 tf.nn、tf.train、tf.data 之类的 API 在相同层级,总感觉有点怪怪的。看上去底层 API 与高级 API 两大类文档,应该是平级的,这样找起来比较好理解。...在最初的 TF 1.X 代码中,很多矩阵运算用的都是 tf.einsum(),静态计算图应该把它都转化为了 MatMul 等计算子,整体推断速度平均是 16ms。...相同代码,在 TF 1.X 下的推断速度。 而如果根据 tf.compat.v1 升级代码,相同的模型确实底层计算子都不太一样。

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

    怎么写一份好的接口文档?

    大家可以在线感受一下优秀的接口文档是怎样的:https://petstore.apifox.cn 那么我们该如何写好一份优秀的接口文档呢? 接口文档结构 首先我们要知道文档结构是什么样子的。...一般来说,接口文档应该包括以下内容: 接口概述 接口参数 接口请求和响应示例 接口返回码 接口调用方法 这些内容都包括的话,起码在结构完整性上就已经做得很好了。接下来要将每个细节完善一下。...参数说明 接口文档应该包括详细的参数说明,以便开发人员更清晰的了解如何正确地使用该 API 接口。每个参数都应该有详细的描述,包括参数名参数的类型、长度限制、默认值、可选值、是否必填和说明等信息。...错误码说明 在接口文档中,应该包括详细的错误码说明,以便开发人员能明确知道 API 接口返回的错误码及其含义是什么。每个错误码都应该有详细的描述,包括错误码的含义、出现的原因以及如何解决问题等信息。...在编写文档时,应该避免使用过于专业化的术语和缩写,如果必须有也可以配合注解,以便读者能够更好地理解。当然,结合团队实际情况来,如果团队里都是大佬,那当我没说。

    1.2K20

    【TypeScript 演化史 -- 6】对象扩展运算符和 rest 运算符及 keyof 和查找类型

    上已经收录,更多往期高赞文章的分类,也整理了很多我的文档,和教程资料。欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 为了保证的可读性,本文采用意译而非直译。...在应用程序中,可以封装对fetch()的调用,并提供默认选项和覆盖给定请求的特定设置。...一个对象的不同属性可以有完全不同的类型,咱们甚至不知道 obj 是什么样子的。 那么如何在 TypeScript 中编写这个函数呢?..., "id"); // any const text = prop(todo, "text"); // any const due = prop(todo, "due"); // any 如果没有更进一步的信息...keyof 操作符号 在 JS 中属性名称作为参数的 API 是相当普遍的,但是到目前为止还没有表达在那些 API 中出现的类型关系。 TypeScript 2.1 新增加 keyof 操作符。

    3.2K30

    Windows截图工具Acropalypse漏洞剖析:开发者中心安全的重要教训

    它会在需要时创建文件并返回句柄,如果所选文件存在,则不会覆盖现有内容。然而,从文档来看,程序员可以理解地假设文件将是空的。"...FileSavePicker的文档没有提到这个问题,尽管示例代码通过使用简单的FileIO API避免了漏洞,该API在写入前隐式截断文件。...然而,更复杂的程序会使用DataWriter,这些示例不会截断文件,文档也没有指出两种API之间的这种差异。不截断现有文件的默认行为很常见,尽管这不是大多数人想要的。...该漏洞还提出了一些问题,比如我们应该如何教授安全软件开发。此外,虽然我没有彻底调查UWP API,但我最初看到的内容确实让我有些担忧。例如,OpenAsync的API非常薄弱。...然而,应该发生的是在写入前截断文件。在Windows中有几种方法可以做到这一点,但这是我调用stream.SetLength(0)时发生的情况。请注意,文件总是会存在,因为选择器会在需要时创建它。

    17410

    使用ASP.NET Core 3.x 构建 RESTful API - 3.1 资源命名

    URI里还涉及到资源的名称,而针对资源的名称却没有一个标准来进行规范,但是业界还是有一些最佳实践的。那么我们首先看看这些最佳实践对资源命名是如何建议的。...要体现资源的结构关系 假设如果后端API系统里面有若干种资源,而用户这个资源与其它的资源并没有直接的关系,这样的话获取用户资源的uri应该是 api/users。...所以API的URI在设计的时候需要体现这种包含关系。 常见的错误做法:如果你想获得公司这个资源,我想你现在应该不会出错,uri应该是 api/companies。...但是如果你的Controller需要同时支持MVC Web页面和Web API,那么这时候就应该继承于Controller这个类。...这部分的详细介绍请点击:官方文档。 Multipart/form-data 请求推断。

    1.2K10

    DOTA2先干掉中路一塔后有多大胜算?

    上回数据冰山发布的《TI7伤害之王》和《TI7小组赛英雄数据报告》收到冰友反馈: 游戏数据接口API如何调用?我没有编程基础,感觉很难的样子。 能不能给一些具体的例子,能一步一步学着操作的那种。...获取数据源(手把手演示如何使用python调用API获取需要的数据) 确定方法论(统计推断statistical inference),处理数据,得出结论 【注意:在数据分析师的实际工作过程中,顺序可能颠倒...上篇文章讲过,可以调用OPENDOTA提供的API来获取公开比赛数据。查阅API接口文档后,发现有一个名叫matches的api提供了一场比赛(match)的详细信息。...我们需要的数据很可能在api返回的结果里。 ? 我们不妨找一场比赛调用这个API试一下(反正又不要钱),看看它到底提供了哪些数据。...这需要用到「统计推断」的知识(推荐一本书《OpenIntro Statistics》)。我们采样的每场比赛之间相互独立,同时正负样本的数量都大于10(说明采样结果的分布没有严重偏曲)。

    1.1K40

    ArcGIS API for JavaScript开发入门必读

    API是ArcGIS软件对外提供的一些通过JS编写的接口,我们按照ArcGIS JS API的官网文档要求去调用这些接口的话就会得到预期的返回值。...这三块的内容其实没有要求你掌握得多精通,如果大家能写一个html页面、能在前端正常显示,并且可以说清楚HTML、CSS、JS这三个技术是如何搭配使用的就可以的,至于后面的H5、CSS3、Vue、React...附: ArcGIS JS API高频问题答疑(基础性知识,持续更新): A:ArcGIS JS API有没有中文文档,英文的官网文档看不懂?...Q:没有中文文档,如果实在看不懂英文,就借助谷歌浏览器自带的翻译功能学习吧。 A:ArcGIS JS API有没有国内部署的地址,官网的地址加载很慢?...Q:这个也没有,大家需要自己本地部署一套,详细操作文档请看博主的其他文章。 A:我在ArcGIS Server上发布了一些数据服务,应该用哪些API去实例化服务图层呢?

    6.6K51

    GPT Engineer和Reflexion——构建AI工程和prompt的利器

    前言 众所周知,今天GPT发布了王炸级更新,主要功能有:新函数式调用功能、16K上下文、更低的价格等。在ChatGPT引领的AI浪潮下,涌现了一大批优秀的AI应用,AI正在不断地重塑一个又一个行业。...在基于AI大模型构建应用时,大家应该也都逐渐意识到,一个好的prompt对于基于大模型的AI应用的重要性。...相信大家能够从这两篇文章中学习到如何基于GPT进行工程开发以及如何构建一套提示词模型系统。 GPT Engineer 指定你想要构建的内容,AI会询问澄清问题,然后进行构建。...演示 演示视频链接[2] Reflexion是什么?...可用的反射策略(在Enum中定义)包括: •ReflexionStrategy.NONE - 代理没有得到关于其最后一次尝试的任何信息。

    1.2K11

    【TypeScript 演化史 — 第六章】对象扩展运算符和 rest 运算符及 keyof 和查找类型

    在应用程序中,可以封装对fetch()的调用,并提供默认选项和覆盖给定请求的特定设置。...一个对象的不同属性可以有完全不同的类型,咱们甚至不知道 obj 是什么样子的。 那么如何在 TypeScript 中编写这个函数呢?..., "id"); // any const text = prop(todo, "text"); // any const due = prop(todo, "due"); // any 如果没有更进一步的信息...keyof 操作符号 在 JS 中属性名称作为参数的 API 是相当普遍的,但是到目前为止还没有表达在那些 API 中出现的类型关系。 TypeScript 2.1 新增加 keyof 操作符。...而且,它应该是特定于Todo类型的解决方案,而不是通用的解决方案。 索引类型查询 有了 keyof,咱们现在可以改进 prop 函数的类型注解。我们不再希望接受任意字符串作为 key 参数。

    3.8K50

    NVIDIA Jetson如何利用生成式AI和微服务在视觉领域创建强大的应用

    你可能还需要一些规则和规则引擎来定义什么是火灾,消防员看起来是什么样子,人类或平民看起来是什么样子。然后还需要一个自然语言模型,但这只能适用于火灾这一应用场景。...它了解许多日常生活中的事物,知道火灾是什么样子,消防员看起来是什么样子,消防车是什么样子。它可以根据上下文理解来推断出,这些人可能正在灭火,那里发生了大火。...如果你在做零样本检测模型,你可以更新要检测的对象是什么,设置阈值,甚至可以说你想要执行哪些警报。查询方面,你还可以提供API请求来生成或使用不同的摄像头流。...我们有一个VL系统,可以在实时视频流上提问,比如发生了什么事情、这个事件是什么时候发生的、有没有火灾等等。...告诉我这个区域内,我的分析情况如何?那么,哪个区域的空箱子最多呢?这个想法非常强大,可以解锁很多新的潜力。你实际上不需要编写所有不同的API,甚至不需要知道所有的API调用。它可以自动处理这些。

    44010

    使用知行之桥的API端口,提供资源供合作伙伴访问

    API端口可以在知行之桥发布自定义的API,供特定的用户和IP地址访问特定的资源,如上的需求,只需要将可以访问的数据维护在特定的数据库中,通过API端口发布,那么企业B就可以通过调用该API获取到自己想要的信息...具体应该如何实现呢?我们来看一下详细的步骤。还是以文章开头的场景举例,需求是企业B想要从企业A处获取特定商品的库存以及价格信息。...以上就是全部知行之桥中API端口的配置,配置好后,需要将API文档以及上一步保存的用户令牌发送给调用方,在API文档中,可以看到资源以及接口的信息: API调用 下面我们就模拟一下作为调用方应该如何调用知行之桥发布的这个...与调用知行之桥AdminAPI类似,需要在Headers处配置参数x-arcesb-authtoken,值为分配的用户令牌,方法设置为GET,URL与API文档中保持一致。...以上就是通过知行之桥API端口发布API的方法,如果需要作为API客户端调用外部的接口,请使用REST端口进行配置。 更多EDI信息,请参阅: EDI是什么 阅读原文

    76420

    如何利用前后端分离开发模式,开始一个项目?

    接口API是只读的还是可修改的?接口入参是什么?接口出参是什么?......这些问题,以往都是由后端同学考虑并定义的。...然而,无论如何,前端同学是应该,也能够在接口定义上提供合理,富有建设性意见的方案。 因此,第二阶段,前端需要给后端同学提供一份接口定义清单。...前后端同步开发 API文档确定后,前后台就能够同时开发了。这时,又可能分为两种情况。 (1) 后端已经定义好接口并且发布,但是,返回值都为假数据,不支持修改操作。...前端同学利用已发布的API进行测试。...当后台接口变更时,必须同步更新API文档,并第一时间通知前端同学,保证前台接口调用也同步更新。 同时,测试人员可以介入,针对接口进行单元测试。注意,这时只是针对接口的黑盒测试,不要涉及任何UI操作。

    1.1K10

    微信、支付宝以及美团等各大开放平台是如何使用OAuth 2.0的?

    所以接下来,我就以京东商家开放平台为例,来和你说说开放平台的体系到底是什么样子的。开放平台体系是什么样子的?我们首先来看一下京东商家开放平台全局体系的结构,如下图所示。 ?...从图中我们还可以看到这个体系整体的调用关系是:第三方软件通过 HTTP 协议请求到开放平台,更具体地说是开放平台的 API 网关服务,然后由 API 网关通过内部的 RPC 调用到各个微服务。...现在问题来了,如果小明注销了账号,或者修改了自己的密码,那他之前为其它第三方软件进行授权的访问令牌就应该立即失效。否则,在刷新令牌过期之前,第三方软件可以一直拿着之前的访问令牌去请求数据。...各大开放平台授权流程 我们以微信、支付宝、美团为例,看看它们在开放授权上是如何使用 OAuth 2.0 的。我们首先看一下官方的授权流程图: 引自微信官方文档 ? 引自支付宝开放平台文档 ?...总结 当有多个受保护资源服务的时候,基本的鉴权工作,包括访问令牌的验证、第三方软件应用信息的验证都应该抽出一个 API 网关层,并把这些基本的工作放到这个 API 网关层。

    1.5K50

    使用C#编写一个.NET分析器(一)

    第二个原因是,它所有的文档和示例都是使用C++编写的,而且目前也没有C#的示例。 从理论上来说,大多数语言都可以来编写.NET分析器。例如,这里有人使用Rust的Demo。...这些事件都会调用分析器的回调方法,而由于分析器是.NET库,所以也需要进行编译,又会产生上面的事件,你应该明白我的观点。...如果一切正常,你应该看到在加载目标应用程序期间显示的消息: C:\console\bin\Debug\net6.0>console.exe Hello from the profiling API...很好,但是现在还没有什么用。如何编写一个真正的分析器?现在我们需要了解如何公开 IClassFactory 的实例。...如下图所示: 为了简单的实现它,我们可以将实例和 vtable 合并到一个内存块中: 那么它在C#中是什么样子的呢?

    1.1K10

    谷歌Duet AI覆盖整个软件开发生命周期

    为了讨论一个 AI 辅助团队“日常生活”可能是什么样子,O'Keefe 扮演了在线杂货零售商的 TypeScript 工程师的角色,“任务是在短时间内将一个小功能交付到生产环境。”...他们表示,这有助于他们集中精力解决更棘手的设计问题,比如如何缓存Firestore文档数据库查询。 在演示的这一点上,O’Keefe指出他们甚至还没有打开IDE —— 这符合典型的软件开发生命周期。...一旦设计文档得到批准,就是开始编写后端代码的时候了。 “任何构建API的客户,都需要大量的管理 —— 长篇规范说明API的功能以及工作量,管理诸如代理之类的事务。...我们可以使用Duet AI的代码完成来提示Duet AI在这里提供帮助,做出AI可以根据我的打开文件的内容和我的数据库架构推断的事情。它知道Firestore【文档数据库】调用应该是什么样子。”...“因为如果发生了问题,我们将不知道如何修复。

    87500

    新一代的vue状态管理插件Pinia

    类型安全,通过类型推断,可以提供自动完成功能。 vue devtools 支持,可以方便进行调试。 Pinia 支持扩展,可以非常方便地通过本地存储,事物等进行扩展。...如何使用 使用 Pinia 非常简单,你可以通过defineStore来简单创建一个存储管理。...state state: computed(() => todo.title), } }, }) 同 vuex 的比较 Pinia 最初是为了探索 Vuex 的下一次迭代可能会是什么样子...与 Vuex 相比,Pinia 提供了一个更简单的 API,具有更少的操作,提供了 Composition-API 风格的 API,最重要的是,在与 TypeScript 一起使用时具有可靠的类型推断支持...如果你喜欢 Composition API ,喜欢更简洁的 api 操作,请一定要选择 pinia。

    62620

    【译】设计优雅的 Rust 库 API

    什么是优雅的 API 方法名清晰易懂,以让调用了这个 API 的代码易于阅读。 有规律、可猜测的方法名在使用 API 时也很有用,可以减少阅读文档的需求。...更多的方法名称约定 除了 RFC 199 和 RFC 344 (见上)规定的以外,还有一些其他的关于如何选择方法名称的约定,目前还没有在 RFC 中提及。...根据你的 API 设计,你也可以选择让你的用户来解析字符串。如果你提供了正确的类型和实现,这应该不会很难(不过仍然需要在文档中注明)。...公共类型别名 如果你的内部代码常常使用某个参数相同的泛型类型,此时可以使用类型别名。如果你想把这些类型公开给你的用户,你也应该把这些别名同样公开给用户(当然记得文档)。...你可以在 Rust Design Patterns 仓库中找到更多信息 Update 2017-04-27:这篇文章发布以来,Rust 库团队的 @brson 已经发布了一个相当全面的 Rust API

    2.1K30

    万能Python脚本生成器!爆了

    如何使用GLM-Zero-Preview模型?...除了APP,还可以在BigModel平台调用模型GLM-Zero-Preview API,部署到自己的应用中,开发类似“数学解题大师”、“软件开发专家”这样的智能体。...调用API接口其实非常简单,首先注册BigModel平台账号,然后在右上角添加新的API key,创建好后便可以在程序中(任何语言都可以)进行调用。...算出来应该是经费不够,差480元。 这里要记住班主任自己出的钱不能算在经费里,否则差720元。 先看看o1-preview的回答: 很明显出错了,它把班主任自己出的钱算进去了,推断不够严谨。...后台回复:脚本,获取全部代码 总结 如今AI推理模型的能力越来越强,随着o1、o3、GLM-Zero-Preview等推理模型的接连发布,我相信会涌现出非常多的AI应用,在编程、数学、逻辑推断等各个方向都会有广阔的应用方向

    70800

    如何为低代码和无代码集成准备API产品

    处理文件的API产品——许多行业的日常用例——尤其面临风险。如果没有优化的文件处理机制,此类API将难以满足低代码工具的事务性、安全性和用户友好性要求。...例如,为了实现 DWS API 与 Zapier 的身份验证,我们没有专门用于验证或识别连接的端点,我们必须首先从无代码“表单模式”切换到低代码“代码模式”,因为我们唯一可以实现它的方法是对 API 调用进行...文件处理应具有选项 如果您的 API 产品处理文件,则与无代码/低代码平台的集成可能会变得更具挑战性,因为他们的用户不一定考虑文件是否以及在哪里持久化,也不考虑它们如何在不同的应用程序之间交换。...大型语言模型难以处理这个问题,坚持使用不受支持的 await 并错误地推断可以导入哪些依赖项以及如何导入。...文档应适合低代码和无代码开发者 如果您有 API 产品,则应使用它来构建与流行的工作流自动化无代码和低代码平台的集成。这将是一个学习和改进的绝佳机会。

    77910
    领券