api接口状态码文档(api接口代码)

网友投稿 998 2023-03-05


本篇文章给大家谈谈api接口状态码文档,以及api接口代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享api接口状态码文档的知识,其中也会对api接口代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么写api接口

一些刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。


推荐使用的是docway 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

一、请求参数

1. 请求方法

GET

用于获取数据

POST

用于更新数据,可与PUT互换,语义上PUT支持幂等

PUT

用于新增数据,可与POST互换,语义上PUT支持幂等

DELETE

用于删除数据

其他

其他的请求方法在一般的接口中很少使用。如:PATCH HEAD OPTIONS

2. URL

url表示了接口的请求路径。路径中可以包含参数,称为地址参数,如**/user/{id}**,其中id作为一个参数。

3. HTTP Header

HTTP Header用于此次请求的基础信息,在接口文档中以K-V方式展示,其中Content-Type则是一个非常必要的header,它描述的请求体的数据类型。

常用的content-type:

application/x-www-form-urlencoded

请求参数使用“”符号连接。

application/json

内容为json格式

application/xml

内容为xml格式

multipart/form-data

内容为多个数据组成,有分隔符隔开

4. HTTP Body

描述http body,依赖于body中具体的数据类型。如果body中的数据是对象类型。则需要描述对象中字段的名称、类型、长度、不能为空、默认值、说明。以表格的方式来表达最好。

示例:

二、响应参数

1. 响应 HTTP Body

响应body同请求body一样,需要描述请清除数据的类型。

另外,如果服务会根据不同的http status code 返回不同的数据结构, 也需要针对不同的http status code对内容进行描述。

三、接口说明

说明接口的应用场景,特别的注意点,比如,接口是否幂等、处理是同步方式还是异步方式等。

四、示例

上个示例(重点都用红笔圈出来,记牢了):

五、接口工具

推荐使用的是http://docway.net(以前叫小幺鸡) 写接口文档,方便保存和共享,支持导出PDF MARKDOWN,支持团队项目管理。

阿里云调用 API 服务后返回什么结果

返回结果

调用 API 服务后返回数据采用统一格式api接口状态码文档,返回的 HTTP 状态码为 2xx,代表调用成功;返回 4xx 或 5xx 的 HTTP 状态码代表调用失败。调用成功返回的数据格式主要有 XML 和 JSON 两种,外部系统可以在请求时传入参数来制定返回的数据格式,默认为 XML 格式。本文档中的返回示例为api接口状态码文档了便于用户查看,做了格式化处理,实际返回结果是没有进行换行、缩进等处理的。

成功结果:

错误结果

调用接口出错后,将不会返回结果数据。调用方可根据每个接口对应的错误码以及下述 2.3.3 的公共错误码来定位错误原因。当调用出错时,HTTP 请求返回一个 4xx 或 5xx 的 HTTP 状态码。返回的消息体中是具体的错误代码及错误信息。另外还包含一个全局唯一的请求 ID:RequestId 和一个您该次请求访问的站点 ID:HostId。在调用方找不到错误原因时,可以联系阿里云客服,并提供该 HostId 和 RequestId,以便api接口状态码文档我们尽快帮您解决问题。

公共错误码

错误代码

描述

Http 状态码

语义

MissingParameter    The input parameter “Action” that is mandatory for processing this request is not supplied    400    缺少 Action 字段  

MissingParameter    The input parameter “AccessKeyId” that is mandatory for processing this request is not supplied    400    缺少 AccessKeyId 字段  

MissingParameter    An input parameter “Signature” that is mandatory for processing the request is not supplied.    400    缺少 Signature 字段  

MissingParameter    The input parameter “TimeStamp” that is mandatory for processing this request is not supplied    400    缺少 Timestamp 字段  

MissingParameter    The input parameter “Version” that is mandatory for processing this request is not supplied    400    缺少 Version 字段  

InvalidParameter    The specified parameter “Action or Version” is not valid.    400    无效的 Action 值(该 API 不存在)  

InvalidAccessKeyId.NotFound    The Access Key ID provided does not exist in our records.    400    无效的 AccessKeyId 值(该 key 不存在)  

Forbidden.AccessKeyDisabled    The Access Key is disabled.    403    该 AccessKey 处于禁用状态  

IncompleteSignature    The request signature does not conform to Aliyun standards.    400    无效的 Signature 取值(签名结果错误)  

InvalidParamater    The specified parameter “SignatureMethod” is not valid.    400    无效的 SignatureMethod 取值  

InvalidParamater    The specified parameter “SignatureVersion” is not valid.    400    无效的 SignatureVersion 取值  

IllegalTimestamp    The input parameter “Timestamp” that is mandatory for processing this request is not supplied.    400    无效的 Timestamp 取值(Timestamp 与服务器时间相差超过了 1 个小时)  

SignatureNonceUsed    The request signature nonce has been used.    400    无效的 SignatureNonce(该 SignatureNonce 值已被使用过)  

InvalidParameter    The specified parameter “Action or Version” is not valid.    400    无效的 Version 取值  

InvalidOwnerId    The specified OwnerId is not valid.    400    无效的 OwnerId 取值  

InvalidOwnerAccount    The specified OwnerAccount is not valid.    400    无效的 OwnerAccount 取值  

InvalidOwner    OwnerId and OwnerAccount can’t be used at one API access.    400    同时使用了 OwnerId 和 OwnerAccount  

Throttling    Request was denied due to request throttling.    400    因系统流控拒绝访问  

Throttling    Request was denied due to request throttling.    400    该 key 的调用 quota 已用完  

InvalidAction    Specified action is not valid.    403    该 key 无权调用该 API  

UnsupportedHTTPMethod    This http method is not supported.    403    用户使用了不支持的 Http Method(当前 TOP 只支持 post 和 get)  

ServiceUnavailable    The request has failed due to a temporary failure of the server.    500    服务不可用  

UnsupportedParameter    The parameter ”” is not supported.    400    使用了无效的参数  

InternalError    The request processing has failed due to some unknown error, exception or failure.    500    其他情况  

MissingParameter    The input parameter OwnerId,OwnerAccount that is mandatory for processing this request is not supplied.    403    调用该接口没有指定 OwnerId  

Forbidden.SubUser    The specified action is not available for you。    403    无权调用订单类接口  

UnsupportedParameter    The parameter ”” is not supported.    400    该参数无权使用  

Forbidden.InstanceNotFound    The specified Instance is not found, so we cann’t get enough information to check permission in RAM.    404    使用了 RAM 授权子账号进行资源访问,但是本次访问涉及到的 Instance 不存在  

Forbidden.DiskNotFound    The specified Disk is not found, so we cann’t get enough information to check permission in RAM.    404    使用了 RAM 授权子账号进行资源访问,但是本次访问涉及到的 Disk 不存在  

Forbidden.SecurityGroupNotFound    The specified SecurityGroup is not found, so we cann’t get enough information to check permission in RAM.    404    使用了 RAM 授权子账号进行资源访问,但是本次访问涉及到的 SecurityGroup 不存在  

Forbidden.SnapshotNotFound    The specified Snapshot is not found, so we cann’t get enough information to check permission in RAM.    404    使用了 RAM 授权子账号进行资源访问,但是本次访问涉及到的 Snapshot 不存在  

Forbidden.ImageNotFound    The specified Image is not found, so we cann’t get enough information to check permission in RAM.    404    使用了 RAM 授权子账号进行资源访问,但是本次访问涉及到的 Image 不存在  

Forbidden.RAM    User not authorized to operate the specified resource, or this API doesn’t support RAM.    403    使用了 RAM 授权子账号进行资源访问,但是本次操作没有被正确的授权  

Forbidden.NotSupportRAM    This action does not support accessed by RAM mode.    403    该接口不允许使用 RAM 方式进行访问  

InsufficientBalance    Your account does not have enough balance.    400    余额不足  

IdempotentParameterMismatch    Request uses a client token in a previous request but is not identical to that request.    400    使用了一个已经使用过的 ClientToken,但此次请求内容却又与上一次使用该 Token 的 request 不一样.  

RealNameAuthenticationError    Your account has not passed the real-name authentication yet.    403    用户未进行实名认证  

InvalidIdempotenceParameter.Mismatch    The specified parameters are different from before    403    幂等参数不匹配  

LastTokenProcessing    The last token request is processing    403    上一次请求还在处理中  

InvalidParameter    The specified parameter is not valid    400    参数校验失败  

如何用IIS查看API文档

第一步
运行IISLogViewer.exe,启动IIS日志分析工具,界面如图:
第二步
可以选择单个IIS日志文件分析或整个站点文件夹进行分析,这里点击“批量文件夹”,选择要分析的IIS日志文件目录,如图;
第三步
选择好要分析的IIS日志文件或文件夹后,默认产生日志列表,列表包括日志文件名称和文件大小,如图
第四步
点击“汇总统计”,可以统计列出的文件的基本访问情况信息,如图,正在加载中:
第五步
“汇总统计”加载完成后,将显示出所有文件各搜索引擎和非搜索引擎的基本访问信息,如图:
第六步
切换“查看明细”,可以选择日志文件可以针对单个IIS日志文件进行分析,这里示例按状态码进行分析,右侧显示日志的状态码统计,并有针对状态码的基本说明,如图:
第七步
双击“状态码”单元格,将进入“状态码明细”分析,可针对单个状态码进行分析,同时右侧,还可以按“搜索引擎分类”显示,点击右侧“列表单元格”,将在左侧下方显示IP详情,双击“IP详情”项,将弹出网页显示IP的所在地,如图:
第八步
除了按状态码分析,切换“24小时”,还可以按时段进行分析,右侧按时段显示24小时的各搜索引擎和非搜索引擎访问情况,如图;
第九步
双击“24小时”列表单元格内的信息,将弹出“24小时明细”,进行时段内更详细的分析,如下图,也可以按“搜索引擎分类”显示,单击列表单元格信息,也可显示IP详情,双击IP详情,同样会弹出网页显示IP地址。

接口测试怎么才能做好?

这个问题还是从需求、测试用例设计、执行来说吧。



A.需求

首先要了解这个接口提供的服务的需求定义,那么我们就知道大概测试的结果是啥。同时理论上要先提供接口规范,方便后续测试,以及给调用者联调的一个文档约定。


B.测试用例设计


根据测试的接口规范,基于业务进行场景设计,再结合边界值设计方法、等价类划分等常用设计方法进行用例设计。


1.设计的方向是常规的测试用例设计:协议规范测试、接口入参、接口出参。

协议规范测试:比如HTTP协议:URL地址、Header测试。不过一般情况下,默认调用者按照接口规范正常调用。这个不用过于详细测试。


2.接口入参:参数个数测试(注意是否必传字段),参数值测试(为空、正常值、非法值等,以及首尾有空格是否过滤)。


3.接口出参:至少涵盖一条成功的响应和一条失败的响应,当然我们测试出更多错误码,我们的覆盖率也就更全面。


4.业务场景用例: 这个需要你对于这个接口的业务的了解程度,而且这是最重要的部分。

比如中间使用了缓存服务(第一次缓存没有,是不是直接读数据源,并存入缓存;第二次直接读取缓存是否正确);

比如需要考虑请求外部的接口获取相应的信息的时间损耗(连接不上外部接口,外部接口下线了,外部接口响应太慢);



C.测试用例执行


1.需要你对接口协议有一定的了解,选择适当的开源工具(如postman)或者自己编写脚本进行模拟请求。

2.需要熟悉接口所使用的中间件等知识(比如redis、kafka、mysql数据库)。

3.需要模拟外部接口返回给你现在正在验证的程序的接口。(比如扣费业务,你不可能每测一个业务,就去调真实扣费)。



是web开发接口吗?建议使用Postman

一、什么是接口?

接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过一些特殊的规则也就是协议,来进行数据之间的交互。

二、 常用接口采用方式:

1、webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。可以使用的工具有apipost、jmeter、loadrunner等;

2、http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和

post等方法,这也是最常用的两种请求方式。可以使用的工具有apipost、jmeter、loadrunner等;

三、前端和后端

前端:网站前端是对网页静态页面的设计,通俗的来说,就是我们肉眼能看的到的东西,当我们浏览网站的时候所看到的页面上的内容几乎都是属于前端,前端的工作就是网站页面,静态的页面是没有后端成分的,前端主要包括html和css外加js等一些样式和布局。

后端: 网站的后端就是动态网站的技术,比如网站上的一些注册登录和一些弹窗,这些都是后端的逻辑,常用的后端语言有php,jsp等,后端的数据库也包含myspl等,都是对后端进行存储数据。

四、 接口测试概念

接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等(通俗来说就是,检查业务逻辑是否满足业务需求,校验字段是否正常你实际结果是否满足预期)

五、 接口的组成:

a、接口说明

b、调用url

c、请求方法(getpostput等)

d、请求参数、参数类型、请求参数说明

e、返回参数说明

六、为什么要做接口测试,接口测试的目标

接口其实app和前端交互用的,所以好多人问,为啥做功能测试还要测接口,目标是啥不是多此一举吗?首先我告诉大家,这种想法是错误的

那么举一个例子:

例如一个登陆接口,例如产品上规定用户名6-10个字符数字下划线,但后端没做判断。但我们业务人员测试肯定验证,但只是前端做了校验,后端压根就忘了这个小需求.那么后果来了如果一个懂的直接抓包去篡改你的接口,然后绕过校验,通过sql注入直接随意登录。如果你这是一个下单业务,是不是给公司造成了很大损失

所以此时此刻接口测试目标来了:

1.可能发现客户端没有发现的bug(那么也叫隐藏bug)

2.及早爆出风险(保证质量正常上线)

3.接口稳定了,前端随便改

4.最重要检查系统安全性,稳定性

七、如何进行接口测试

1.使用接口测试工具进行测试,接口测试和接口文档生成工具apipost,接口测试和性能测试工具jmeter

2.接口状态码表示含义

例如:200(成功)/300(重定向别的地方)/400(请求语法错误)/500(服务器异常)

测试点:

B. 参数组合(传入不同值)

C. 接口安全(绕过验证/绕过身份验证/参数是否加密等)

D. 异常验证(输入异常参数边界值)

接口错误状态码对照表

错误状态码为5位整型数值。所有整万的值保留。

扩展状态码为英文状态码,参考阿里的错误码,大部分切换到英文状态码,有更好的可识别性,例如 云服务ESC 。

公司历史项目原因,目前暂时只采用数值状态码。如果后续开发中涉及到异常没有对应的错误状态码,找到对应的分类表后追加记录。

不能修改已有的状态码。

不能删除已有的状态码。

在添加新的状态码前,先检查一下是否会重复定义。(ctrl + f 在本页面搜索下)

如果没有符合需要的状态码,找到对应的类别,添加一条新的记录。

以PHP为例,PHP语言提供的错误码是2的N次方的数值。从1到30719。

超过10000的错误码有:16384、30719,这两个状态码不能再被定义。

10001至19999

20001至29999

30001至39999

40001至49999

50001至59999

60001至69999

70001至79999

80001至89999

90000至99999 关于api接口状态码文档和api接口代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 api接口状态码文档的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于api接口代码、api接口状态码文档的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Spring boot + mybatis + orcale实现步骤实例代码讲解
下一篇:vue的无缝滚动组件vue
相关文章

 发表评论

暂时没有评论,来抢沙发吧~