衡量接口(API)设计好和坏的准则是什么?

MFC与Parasolid集成高级自定义函数教程 在当今的软件开发领域,MFC(Microsoft Foundation Classes)为Windows应用程序开发提供了一套丰富的类库,尤其在传统的桌面应用开发中占据了举足轻重的地位。本章将为您揭开MFC编程的神秘面纱,从其起源、核心组件到开发流程,逐步深入理解这一历史悠久的框架。在软件开发中,“高内聚,低耦合”是一个被广泛接受的设计原则。内聚性是衡量一个函数或模块内部元素结合的紧密程度的度量标准。高内聚意味着函数或模块内部功能高度相关,具有明确的单一职责。 阅读详情

这里是修真院后端小课堂,每篇分享文从

【衡量接口(API)设计好和坏的准则是什么? 】

大家好,我是IT修真院北京分院第22期的学员杨舜,一枚正直纯洁善良的JAVA程序员

今天给大家分享一下,修真院官网JAVA任务2的深度思考:一份规范的接口文档应该包括什么内容,衡量接口(API)设计好和坏的准则是什么?

PPT链接:点我!

_腾讯视频

1.背景介绍
什么是接口文档?

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

2.知识剖析
为什么要写接口文档?

1、项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发

2、项目维护中或者项目人员更迭,方便后期人员查看、维护

接口规范是什么?

首先接口分为四部分:方法、uri、请求参数、返回参数

1、方法:新增(post) 修改(put) 删除(delete) 获取(get)

2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;

get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾

3、请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填

字段是类的属性;

说明是中文释义;

类型是属性类型,只有String、Number、Object、Array四种类型;

备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;

是否必填是字段的是否必填。

4、返回参数结构有几种情况:

1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数;

2、如果要返回某些参数,则有两个结构体:1是code/mesage/data,2是data里写返回的参数,data是object类型;

3、如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/list 4个参数,其中list是Arrary类型,list里放object,object里是具体的参数。

3.常见问题
衡量接口(API)设计好和坏的准则是什么?

4.解决方案
单词拼写要准确,接口一旦发布就不能改了,要保持兼容性,拼写错误也不能改了,所以要仔细检查拼写,否则会被同行嘲笑很多年。

方法名称是否可以自描述,即看到方法的名字就能知道方法的作用、看到参数名就知道需要传递什么样的数据(比如getUserById(String userId))

API一定要便于使用者理解,这样才是广泛传播的基础。如果有些API需要用户掌握特定的概念、定义,那么就要保持这个API的一致性,不能轻易的改变API,否则会给使用者带来很大的麻烦。

接口参数验证必不可少,同时异常等返回信息得全面,让调用者明确异常原由;

全双工AI语音交互:从原理到实践,构建实时对话系统 语音交互技术正从传统的半双工模式向全双工模式演进,以实现更自然、实时的对话体验。全双工交互的核心原理在于模拟人类电话通话,允许双方同时发送和接收音频流,这需要流式语音识别(Streaming ASR)和实时自然语言理解(Real-time NLU)技术的深度整合。其技术价值在于显著降低交互延迟,支持智能打断(Barge-in),从而提升人机对话的流畅度和自然度。在应用场景上,全双工技术是智能助手、实时翻译、车载语音及无障碍交互等领域的关键突破。本文以微软MAI Realtime等模型为例,探讨如何利用开源技 阅读详情

相关推荐

安卓APP通过CH340实现USB串口通信与设备检测

本文详细介绍了安卓APP通过CH340芯片实现USB串口通信与设备检测的完整流程。从CH340芯片的基础原理到开发环境搭建,再到串口通信的具体实现和错误处理,提供了全面的技术指导。文章还分享了USB热插拔处理、自动重连策略以及性能优化等实战技巧,帮助开发者高效完成安卓与嵌入式设备的通信开发。

weixin_42531925的博客 379

聊聊接口文档的事儿

如何在项目中使用接口文档,接口文档的详细搭建步骤,包含Swagger 与 Knife4j

京茶吉鹿的博客 5047

从零到实战:用QCustomPlot在QT中绘制动态曲线图(含OpenGL加速配置)

本文详细介绍了如何在QT中使用QCustomPlot库绘制动态曲线图,并配置OpenGL加速以提升渲染性能。从环境搭建、动态数据可视化到OpenGL加速配置,手把手教你实现工业级动态曲线监控系统,适用于大数据量实时展示场景。

weixin_29019241的博客 351

前后端日常吵架——接口文档谁来定义呢?

和朋友聊天,他说他们公司开始了一个新项目,由他负责后端开发。因为之前做过全栈的项目,前后端开发思路都懂,就自己把逻辑走了一遍,写了api接口。结果项目开发到一半,新招了个ios,上来就说他写的接口不行吵了起来。 那么接口文档到底是该谁来定义呢? 接口是什么? API,全称是ApplicationProgramming Interface,即应用程序编程接口,我们日常中习惯简称为“接口”。接口是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内

API 1万+

Numpy快速入门(np)!看这一篇就够了

Numpy快速入门(np)!看这一篇就够了

weixin_74009895的博客 2678

【QNX+Android虚拟化方案】00 - 系列文章链接汇总

【QNX+Android虚拟化方案】00 - 系列文章链接汇总

|~~~热爱生活、努力学习的小伙汁~~~| 1万+

什么是接口文档,如何写接口,有什么规范?

在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。

nhb687096的博客 3805

深度解析:LPDDR5 采样 Mask 背后的秘密 —— 从 Jitter 到 BER 全面剖析

在 LPDDR5 中,CK/DQS 信号相当于“指挥棒”,而数据(DQ)要在时钟节拍里被准确采样。Crosspoint Mask 区域横轴:时间 (Time)纵轴:电压 (Vref)👉 只要采样点落在这个区域内,数据就是正确的。否则就会出错。BERPBERPMask 就像高速公路的收费站口,如果车(采样点🚗)在车道内,顺利通过;一旦跑偏,就撞护栏。LPDDR5 的速率极高,UI 非常短,Mask 区域成为核心指标各种 Jitter、Noise 会不断压缩 Mask。

weixin_43199439的博客 354

Swagger介绍

Swagger介绍 Swagger2文档API 为了减少程序员撰写文档时间,提高生产力, Swagger2 应运而生,使用 Swagger2 可以减少编写过多的文档,只需要通过代码就能生成文档API,提供给前端人员 常方便。 引入依赖 <!-- swagger2 配置 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifac

赵耀渊的博客 600

1、开启 Microsoft Power Automate 自动化之旅

本文介绍了 Microsoft Power Automate 的基本概念和其在信息时代自动化需求中的重要作用。Power Automate 是 Power Platform 的一部分,能够通过无代码/低代码的方式自动化处理重复性任务,例如邮件处理、文件复制等,从而提升工作效率。文章还详细讲解了 Power Automate 的核心术语、登录方式、创建第一个流程的操作步骤,并通过示例帮助用户快速上手。无论是终端用户还是管理员,都可以通过本文了解如何利用 Power Automate 实现业务流程自动化。

corn8的博客 169

【银河麒麟V10】【桌面】【服务器】系统启动问题

1、如果之前运行好好的,重启后系统报错,一般80%是因为fstab的问题,回想下之前有没有添加过外接存储,修改过/etc/fstab,如果是的话一般是因为存储异常(比如网络存储无法连接,本地存储路径变化)导致系统开机自检失败,导致无法正常启动; 处理方式:进入单用户(单用户进入的几种方式上面有专门文章介绍),修改/etc/fstab,将新增的内容暂时注释掉,然后重启系统,能正常进入系统后再分析失败原因。 ...

桂安俊@KylinOS 3万+

接口文档应该如何编写

  1.背景介绍 接口:API API(Application Programming Interface)即应用程序接口。可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接口。 目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 从另一个角度来说,API是一套协议,规定了我们与外界的沟通方式:如何发送...

qq_41287705的博客 2万+

RK3588 hdmiout调试(一)

RK3588 hdmiout调试(一)

目前从事linux驱动开发,多交流多学习吧 5169

智能体工作流测试新思路:结构化覆盖准则的跨界应用与实践

在软件测试领域,结构化覆盖准则(如语句覆盖、分支覆盖)是衡量测试完备性的经典方法,它通过分析程序的控制流图来确保代码逻辑被充分执行。其核心原理在于对程序执行路径进行系统性的遍历与验证,技术价值在于为软件质量提供了可量化、可复现的评估基准,广泛应用于单元测试、集成测试等场景。随着AI应用的普及,智能体工作流(Agentic Workflows)因其非确定性和复杂状态空间,对传统测试方法提出了新挑战。本文将探讨如何将成熟的结构化覆盖准则进行适应性改造,应用于智能体工作流的测试中,通过定义工作流状态机模型、决策点

weixin_30512043的博客 316

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VideoArgus:基于智能体与评价准则的视频生成质量统一评估框架

在人工智能驱动的视频生成与编辑领域,如何客观、全面地评估生成内容的质量,是连接技术研发与工程应用的关键环节。其核心原理在于构建一个可量化、多维度的评估体系,以替代传统依赖人工或单一自动化指标的评判方式。这一体系的技术价值在于为模型迭代、算法优化和产品应用提供了标准化的质量标尺,从而显著提升研发效率和生成结果的可靠性。典型的应用场景包括视频生成模型的基准测试、生成过程的自动化优化以及视频编辑工具的智能辅助。本文聚焦的VideoArgus框架,正是通过整合多模态大模型和智能体(Agentic)技术,构建了一个基

weixin_30357231的博客 444

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

php设计模式及耦合性和多形性

什么是设计模式: 设计模式就是一个教你如何利用真实可靠的设计来组织你的代码的模板。 所有的设计模式都有一些常用的特性:一个标识(a name),一个问题陈述(a problem statement)和一个解决方案(a solution)。   1、一个设计模式的标识是重要的,因为它会让其他的程序员不用进行太深入的学习就能立刻理解你的代码的目的(至少通过这个标

孙闯的博客 1658

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

细数35个单元测试准则

这无疑是不可能的任务。一个简单的“测试类”会促使建立“被测类”基本的测试骨架,可以对构建环境、单元测试环境、执行环境以及覆盖率分析工具等有效性进行检查,同时也可以证明“被测类”能够被整合和调用。一个“测试类”应该只对应于一个“被测类”,并且“被测类”的行为应该被隔离测试。这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!工作流测试(译注:指跨模块、类的数据流测试)有它自己的地盘,但它绝不是单元测试,必须单独建立和执行。

qq_48811377的博客 1158

层次分析法AHP:多准则决策的权重建模实战指南

层次分析法(AHP)是一种面向多准则、难量化、强主观决策场景的经典权重建模方法,其核心原理是通过两两比较将人类相对判断转化为结构化权重向量,并内置一致性检验机制保障逻辑自洽。相比简单加权平均或专家打分,AHP的技术价值在于显性化价值偏好、约束思维偏差、支持可追溯决策。广泛应用于选型评估、资源优先级排序、服务优化、实习/供应商选择等工程与管理实践场景。本文聚焦AHP从层次构建、判断矩阵填写、权重计算到一致性校验的完整实操链路,特别解析‘标度锚定’‘CR超标归因’‘权重生命周期’等真实项目中高频出现的关键技术细

weixin_30466039的博客 335

一文掌握:AI Agent Prompt是什么?智能体Prompt如何设计?

AI Agent的能力,大多藏在Prompt里,可以说Prompt决定了智能体的行为准则。它是智能体的 “行为指南”,定义了角色、任务与决策逻辑。没有好的Prompt,再强的模型也是“无头苍蝇”,反之精准的Prompt,能让Agent从机械的执行流程中解放出来,升级为可以灵活应变的智能工具,是低成本释放AI潜力的核心钥匙,更是中小企业的福音!

m0_59164304的博客 1582

AI技能工程化:构建可验证制品与双条件正确性准则的信任框架

在AI驱动的应用开发中,如何确保智能体(Agent)生成结果的可靠性与可控性,是工程实践的核心挑战。传统软件工程通过测试、审查与版本控制建立信任体系,而AI技能(Skill)因其随机性和人类反馈(Human-in-the-Loop)的介入,使得这一体系面临重构。本文从技能制品化(Verifiable Artifacts)这一基础概念切入,探讨通过结构化定义功能规格、实现本体与验证附件,将AI技能提升为可管理、可测试的工程制品。进而引入信任模式(Trust Schema),从功能正确性、过程合规性、不确定性量

weixin_30729609的博客 411

如何打造活跃的科幻爱好者聚集地:awesome-scifi项目社区建设终极指南

在数字时代,科幻爱好者需要一个高质量的交流平台和资源库。**awesome-scifi项目**作为一个精心策划的科幻作品推荐库,为全球科幻迷提供了宝贵的参考资源。这个开源社区不仅整理了数千部科幻作品,还通过集体智慧为每部作品添加了深度评论和评分,成为科幻爱好者的必访之地。 ## 📚 为什么科幻社区如此重要? 科幻不仅仅是娱乐,它是一种思维方式,是对未来的探索和对现实的反思。一个活跃的科幻社区

gitblog_00871的博客 1086

测试用例文档_跟我学:测试用例怎么设计才能满足需要,少走弯路?

​测试用例是为实施测试而向被测试系统提供的输入数据、操作或各种环境设置以及期望结果的一个特定的集合。解决要测什么、怎么测和如何衡量的问题。单元用例的质量直接决定产品的质量。在做好用例设计的前提下,单元用例的颗粒度、涉及面、正确性、可执行性都要有保障用例设计的依据是详细需求、UE设计文档,用例编写过程中发现需求与设计中的问题后,要与对方及时沟通确认。具体到事业部产品,用例可以细分为三类:1) 单元用...

weixin_39898380的博客 115
上一篇: 在Linux服务器上部署的时候,一般都要有哪些脚本,这些脚本该怎么编写?
下一篇: jdbc数据库连接池的原理及分析
learning__java
博客等级 码龄8年 87粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值