产品经理技术脑:怎么看懂接口文档

日常产品开发过程中,涉及前后端数据交互的时候,往往会离不开接口调用,尽管产品经理一般不需要写接口文档(负责接口中间层产品经理除外),但对接口了解,对于需求沟通、需求传达还是很有帮助的。

接口是什么?

API(ApplicationProgramming Interface)即应用程序接口。

可以认为 API 是一个软件组件或是一个Web 服务与外界进行的交互的接口。从另一个角度说,API是一套协议,规定了我们与外界的沟通方式:如何发送请求和接收响应。

API的本质是根据调用者的输入内容来返回一些其他内容。

举个栗子,这和我们生活中接触的USB接口的原理是类似的,我们知道接入某个接口就能实现某种功能,例如:U盘插入电脑USB接口就可以相互传输文件。

产品经理看懂接口文档的意义

1)了解技术开放能力,产品设计更合理

例如,我们公司是做微信公众号生态相关的产品的,微信开放了许多公众号的接口,如果不了解微信的接口文档,往往就不知道如何应用到自己的产品。

2)通过接口构建产品功能。

通过现有接口来搭建产品,通过对接口、技术的理解,能够更深入地衡量产品的数据边界,对针对性的进行产品特色功能设计。

接口组成

接口分为四部分:

1、方法:

新增(post) 修改(put) 删除(delete) 获取(get)

2、格式:

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

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

3、请求参数和返回参数,

都分为5列:字段、说明、类型、备注、是否必填

  • 字段:类的属性

  • 说明:中文释义;

  • 类型:属性类型;

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

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

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

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

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

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

接口请求方式

基于http协议的常用请求方式是post和get;两者的主要区别如下:

(1)get请求方式是将请求参数放到url中,post是将参数放到requstbody中,

直接影响是get的请求参数存在长度限制,post无限制;其次是get将参数放到url中安全性弱于post;

(2)get请求方式用户端和服务端只产生一次交互,post请求方式用户端会和服务端产生两次交互,

例:快递小哥是用户端,你是服务端,get就像常来你们小区和你认识的快递员直接将快件送到你家,你跟他说声谢谢;post就像新来的快递员先打个电话问下你在家吗?你告诉他你在家呢,过了5分钟他将快递送到你家了,你跟他说声谢谢;

接口响应机制

接口的响应机制包括:

  • 同步接口

  • 异步接口

同步接口即实时返回消息给调用方,异步接口就是可以延迟返回消息给调用方;实时性要求高的且只能线性工作的需要采用同步接口,其他可以优先使用异步接口;

不同的场景,同样的服务接口会被要求同步或异步,以人脸识别中的人脸注册为例:

(1)刷脸支付:

以支付宝为例,使用之前需要按照步骤采集人脸,后台调用人脸注册将当前人脸注册进人脸库并和该支付宝账号信息绑定,这一步人脸注册通常是同步接口,因为不会要求用户在APP前等待太久,需要及时返回注册成功信息;

(2)客流系统:

商超使用的客流系统一般已经采用人脸识别取代头肩模型,这样不仅可以统计人数还可以统计人次,其中对于首次识别的陌生人脸通常需要注册进陌生人脸库,这里的人脸注册一般为异步接口,因为大型商超每天数十万客流且对于陌生人无会员信息,所以不需要实时注册,只要进入队列能在当日24小时内注册完即可;

关于API的接口在设计时,开发一般会要求产品确定接口的响应机制;其他的开发都会自己完成;

很多产品经理刚接触API接口工作时,脑子一片空白,不理解接口(API)是什么,更看不懂接口开发文档。那么,作为一个不懂技术的产品经理,该如何看懂接口文档。

API文档结构

API接口文档一般分为接口描述、接口地址、请求方法、请求参数、相应内容、错误代码、实例几个部分。

1、接口描述

简单描述接口的逻辑和作用

2、接口地址

接口的正式url和接口测试的url,需求方通过调用接口url,获取响应内容

3、请求方法

一般来说,接口最常见的请求方法为GET和POST两种方式,即读接口和写接口。通过这两种方式,实现对数据的增删查改。增删改本质都是写的动作。

4、请求参数

即需要请求的字段名的名称和规则:都是哪些字段,字段的类型是什么,是否必填字段等等

5、响应内容

接口返回的字段名称和规则。

注意:大部分开发往往不会把所有的字段罗列,只会列出比较重要的字段。当你发现,接口文档中没有你需求的字段,别着急找开发,可以看下实例中,有没有需求的字段。

6、错误代码

对接口的错误用代码进行归类,以便能快速找到错误原因,解决问题。

7、实例

实际调用时的响应的内容。

核心业务字段&接口约束

产品经理虽然不需要定义API文档里所有的字段信息,但是跟业务需求有关的字段产品经理需要明确清晰。

下面就来看看API文档中的核心业务字段与接口约束。

1. 入参

(1)鉴权字段信息

调用第三方平台接口通常需要进行接口鉴权,服务端判断用户端是否有调用接口的权限;产品经理设计应用管理时,要了解:应用列表、应用创建、应用详情、应用配置、应用删除等操作;

以百度AI平台为例,应用列表如下:

                         

AppID、API Key和Secret Key为创建应用时自动生成,接口鉴权所需要的access_token必须通过API key和Secret key请求服务端获取。

(2)核心业务字段

产品经理要根据业务需求明确接口入参中需要哪些字段信息以及字段支持的类型,

以百度AI平台的菜品识别为例:

业务需求:

识别图片中的菜品;

产品详细需求:

用户输入图片,图片支持采用base64和URL格式;top_num

top_num,提高接口的通用性,方便用户后续场景扩展,因此支持配置返回菜品数量且排序;

阈值,开放识别阈值,方便用户根据实际识别效果调整,提高准确率;

注意点:设计接口核心业务字段,要尽量提高接口的通用性,以此适配更多的用户场景,比如top_num和阈值的开放,即泛化接口能力,将更多的主动权交由接口用户配置。

(3)字段信息约束条件

字段约束条件是为了保证接口的安全性,这点是产品经理跟业务方沟通达成一致后提供给开发小伙伴的;

以菜品识别为例:

图片要求:采用base64图片编码、大小不超过4M,最短边大于15PX,最长边小于4096px,图片格式:jpg/png/bmp

图片需要限制文件大小和分辨率大小,文件大小只需要上限,分辨率大小需要包括上限和下限,下限是为了保证算法效果,比如在目标检测中小目标容易检测失败;

top_num需要限制下限,不得小于0,不设上限,可以接受算法返回的所有结果;

阈值根据格式确定,可以是0-100,可以是0-1;

注:为了保证算法效果,有时算法会默认设置参数,即用户设置的阈值低于默认参数,则不接受输入,采用默认,用户是无感知的;

2. 出参

调用接口会有返回信息。产品经理需要根据业务需求定义返回的核心字段信息。

以百度AI开放平台手势识别为例,跟业务需求相关的关键字段包括:

result_num、result,即一张图片中识别的手势结果数量,和具体的手势信息;

result为json数组,包括手势的类别、手势检测框的位置信息【一般识别类算法底层是检测+识别两步】、和手势类别的置信度;

其中result中的一些字段信息,产品可以根据业务需求进行增减,比如目标检测框的位置信息,一般业务不需要就可以省略。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/548567.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

集成电路测试学习

集成电路(Integrated Circuit,IC)整个设计流程包括:电路设计、晶圆制造、晶圆测试、IC封装、封装后测试。 IC测试目的:一、确认芯片是否满足产品手册上定义的规范;二、通过测试测量,确认芯片可以…

【艾体宝方案】智驾未来:高性能实时数据库,车企的数据分析变革!

近年来,汽车行业持续朝向互联互通以及自动化方向的演进,无论是在优化制造流程、提升车辆安全与性能,还是提供定制化客户体验方面,汽车行业的都未来牢牢根植于其有效处理和利用数据的能力。 一、汽车行业面临的挑战 (…

Java(120):使用Java对TiDB数据库批量写入数据

使用Java对TiDB数据库批量写入数据 1、前言: 本次对TiDB数据库测试需要1w条数据,如果MySQL可用存储过程造数,结果发现TiDB用不了。只能想其他办法,一种是Java直接批量插入,一种是Jmeter插入。这里用的Java插入。 如果…

CANoe中关于NetworkHardwareConfiguration中的setup设置参数的详解

前提说明 本文是以VN1640A中的CAN_FD工程为例,为大家讲解。 1:首先打开相关配置 重点讲解红色框中的参数,其他参数该如何设置,请参考我另外一篇文章“关于CANoe硬件及接口的学习笔记(VN1640A)”或自行查阅…

js 写 视频轮播

html代码 <div class"test_box"> <div class"test"> <a href"#"> <div class"test_a_box"> <div class"test_a_mask"></div> <div class"test_a_layer"> <div cla…

偏微分方程算法之混合边界差分

目录 一、研究对象 二、差分格式 2.1 向前欧拉格式 1. 中心差商 1.1.1 理论推导 1.1.2 算例实现 2. x0处向前差商&#xff0c;x1处向后差商 1.2.1 理论推导 1.2.2 算例实现 2.2 Crank-Nicolson格式 2.2.1 理论推导 2.2.2 算例实现 一、研究对象 这里我们以混合边界…

高分一号卫星(GF-1):中国遥感科技的骄傲

高分一号卫星&#xff08;GF-1&#xff09;是中国遥感科技领域的一项突破性成就&#xff0c;其引入了先进的成像技术和灵活的数据获取模式&#xff0c;为中国的资源管理、环境监测和城市规划等领域带来了巨大的变革。本文将深入介绍高分一号卫星的技术参数、成像能力以及应用场…

抽奖系统设计

如何设计一个百万级用户的抽奖系统&#xff1f; - 掘金 如何设计百万人抽奖系统…… 在实现抽奖逻辑时&#xff0c;Redis 提供了多种数据结构&#xff0c;选择哪种数据结构取决于具体的抽奖规则和需求。以下是一些常见场景下推荐使用的Redis数据结构&#xff1a; 无序且唯一奖…

解析数据科学,探索ChatGPT背后的奥秘

在当今这个由数据驱动和AI蓬勃发展的时代&#xff0c;数据科学作为一门融合多种学科的综合性领域&#xff0c;对于推动各行各业实现数字化转型升级起着至关重要的作用。近年来&#xff0c;大语言模型技术发展态势强劲&#xff0c;为数据科学的进步做出了巨大贡献。其中&#xf…

第四百六十二回

文章目录 1. 概念介绍2. 实现方法3. 示例代码4. 内容总结 我们在上一章回中介绍了"关于MediaQuery的优化"相关的内容&#xff0c;本章回中将介绍readMore这个三方包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章回中介绍的readMore是一个…

新经济助推高质量发展“大有云钞”聚焦未来趋势

近日&#xff0c;由大有云钞科技&#xff08;北京&#xff09;有限公司主办的一场关于“新经济助力高质量发展法治研讨会”在北京国家会议中心隆重举行。此次研讨会汇聚了来自政府、企业、学术界和法律界的众多专家学者&#xff0c;共同探讨新经济背景下的法治建设和高质量发展…

Scrapy 框架基础

Scrapy框架基础Scrapy框架进阶 Scrapy 框架基础 【一】框架介绍 【1】简介 Scrapy是一个用于网络爬取的快速高级框架&#xff0c;使用Python编写他不仅可以用于数据挖掘&#xff0c;还可以用于检测和自动化测试等任务 【2】框架 官网链接https://docs.scrapy.org/en/late…

YesPMP平台 | 活动有礼,现金奖励点击领取!

YesPMP众包平台在线发福利啦&#xff0c;活动火热开启&#xff0c;现金奖励等你来领&#xff0c;最高可领千元&#xff0c;赶快参与将奖励收入囊中&#xff0c;一起来了解活动细节吧&#xff01; 一、活动内容&#xff1a; 活动一&#xff1a;【项目征集令】活动&#xff0c;…

二路归并排序的算法设计和复杂度分析(C语言)

目录 实验内容&#xff1a; 实验过程&#xff1a; 1.算法设计 2.程序清单 3.运行结果 4.算法复杂度分析 实验内容&#xff1a; 二路归并排序的算法设计和复杂度分析。 实验过程&#xff1a; 1.算法设计 二路归并排序算法&#xff0c;分为两个阶段&#xff0c;首先对待排…

Anaconda下的tensorflow安装

关于Anaconda的安装以及配置可以浏览我的上一篇博客Anaconda的安装与配置 下面是安装tensorflow的命令&#xff0c;使用下列指令安装前需要配置好CUDA&#xff0c;关于CUDA的配置在上一篇博客中有详细的步骤描述。 关于官方环境配置的要求可以浏览官网&#xff1a;https://t…

每帧纵享丝滑——ToDesk云电脑、网易云游戏、无影云评测分析及ComfyUI部署

目录 一、前言二、云电脑性能测评分析2.1、基本配置分析2.1.1、处理器方面2.1.2、显卡方面2.1.3、内存与存储方面2.1.4、软件功能方面 2.2、综合跑分评测 三、软件应用实测分析3.1、云电竞测评3.2、AIGC科研测评——ComfyUI部署3.2.1、下载与激活工作台3.2.2、加载模型与体验3.…

yolov8目标检测 部署瑞芯微rk3588记录

1. 前置条件 本地电脑系统&#xff0c;ubuntu20.04 训练代码&#xff1a; 训练代码下载的ultralytics官方代码 SHA&#xff1a;6a2fddfb46aea45dd26cb060157d22cf14cd8c64 训练代码仅做数据修改&#xff0c;类别修改&#xff0c;代码结构未做任何修改 需要准备的代码&#…

基于springboot+vue+Mysql的论坛管理系统

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

图深度学习(一):介绍与概念

目录 一、介绍 二、图的数据结构 三、图深度学习的基本模型 四、图深度学习的基本操作和概念 五、训练过程 六、主要应用场景 七、总结 一、介绍 图深度学习是将深度学习应用于图形数据结构的领域&#xff0c;它结合了图论的概念和深度学习的技术&#xff0c;用以处理和…

刷新认知,Python中循环结构可以这么简单?

应用场景 我们在写程序的时候&#xff0c;一定会遇到需要重复执行某条或某些指令的场景。例如用程序控制机器人踢足球&#xff0c;如果机器人持球而且还没有进入射门范围&#xff0c;那么我们就要一直发出让机器人向球门方向移动的指令。 在这个场景中&#xff0c;让机器人向…