多平台统一管理软件接口,如何实现多平台统一管理软件接口
694
2023-03-12
本文目录一览:
一些刚开始写接口文档的服务端同学,很容易按着代码的思路去编写接口文档,这让客户端同学或者是服务对接方技术人员经常吐槽,看不懂接口文档。这篇文章提供一个常规接口文档的编写方法,给大家参考。
推荐使用的是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接口的使用 初步是想做一个在线android应用 应用中的文档是存放在百度云盘的 主要是分一下几个步骤 注册百度账号 登录百度开发者中心 创建移动应用 获取对应的(API Key Secret Key) 开通pcs API权限 获取ACCESS_token(认证编码) 开发应用 注意 开通移动应用 获取key 获取token的时候我使用的安卓获取的方式 通过我写对应api的例子我发现 其实就两种情况 一种是get方式提交数据 另外一种是post方式提交数据 get方式提交数据 我们用获取云盘的信息为例 获取云盘信息前我们要知道 我们要准备好什么数据 请求参数 url: 标明我们要访问的网址路径 值固定问 method:标明我们是请求云盘信息 值固定为 info acceess_token:准入标识 值是我们自己申请的 接收返回参数 quota:云盘总容量 used:云盘使用容量 request_id:该请求的表示 没啥用 返回的一个json串如下格式 { quota : used : request_id : } 我在做的时候你使用Gson工具将json串转换到对应的entity类中了 代码如下 [] /** * @param URLConnection conn通过get方式获取StringBuffer * @return */ private StringBuffer getJsonString(URLConnection conn) { InputStreamReader isr = null; BufferedReader br = null; StringBuffer *** = null; try { isr = new InputStreamReader(conn getInputStream() gb ) br = new BufferedReader(isr) String line = null; *** = new StringBuffer() while ((line = br readLine()) != null) { *** append(line) *** append( \r\n ) } } catch (UnsupportedEncodingException e) { e printStackTrace() } catch (IOException e) { e printStackTrace() }finally{ try { if(isr!=null) isr close() } catch (IOException e) { System out println( 流关闭是异常 ) e printStackTrace() } } return *** ; } /** * @return * @throws Exception * 获取云空间的信息 */ public CloudInfo getCloudInfo() throws Exception { URL u = new URL( ?method=infoaccess_token=你申请的token的值 ; URLConnection conn = u openConnection() // 打开网页链接 // 获取用户云盘信息 String cloudJson = this getJsonString(conn) toString()
// 解析成对象 下面有这个实体对象的类 Gson gson = new Gson() CloudInfo cloudInfo = gson fromJson(cloudJson CloudInfo class) System out println( 云盘信息 +cloudInfo) return cloudInfo; } /** * @param URLConnection conn通过get方式获取StringBuffer * @return */ private StringBuffer getJsonString(URLConnection conn) { InputStreamReader isr = null; BufferedReader br = null; StringBuffer *** = null; try { isr = new InputStreamReader(conn getInputStream() gb ) br = new BufferedReader(isr) String line = null; *** = new StringBuffer() while ((line = br readLine()) != null) { *** append(line) *** append( \r\n ) } } catch (UnsupportedEncodingException e) { e printStackTrace() } catch (IOException e) { e printStackTrace() }finally{ try { if(isr!=null) isr close() } catch (IOException e) { System out println( 流关闭是异常 ) e printStackTrace() } } return *** ; } /** * @return * @throws Exception * 获取云空间的信息 */ public CloudInfo getCloudInfo() throws Exception { URL u = new URL( ?method=infoaccess_token=你申请的token的值 ; URLConnection conn = u openConnection() // 打开网页链接 // 获取用户云盘信息 String cloudJson = this getJsonString(conn) toString() // 解析成对象 下面有这个实体对象的类 Gson gson = new Gson() CloudInfo cloudInfo = gson fromJson(cloudJson CloudInfo class) System out println( 云盘信息 +cloudInfo) return cloudInfo; } [] package entity; import java lang reflect Type; /** * @author ydcun 获取云空间的信息 例如 * { quota : 空间配额 单位为字节 * used : 已使用空间大小 单位为字节 * request_id : } */ public class CloudInfo{ private Double quota; private Double used; private Double request_id; /** * @return the quota 空间配额 单位为字节 */ public Double getQuota() { return quota; } /** * @param quota the quota to set 空间配额 单位为字节 */ public void setQuota(Double quota) { this quota = quota; } /** * @return the used 已使用空间大小 单位为字节 */ public Double getused() { return used; } /** * @param used the used to set 已使用空间大小 单位为字节 */ public void setused(Double used) { this used = used; } /** * @return the request_id */ public Double getRequest_id() { return request_id; } /** * @param request_id the request_id to set */ public void setRequest_id(Double request_id) { this request_id = request_id; } @Override public String toString() { return new StringBuffer() append( 空间容量 ) append(this getQuota()/ / ) append( M; 已用 ) append(this getused()/ / ) append( M; ) toString() } } package entity; import java lang reflect Type; /** * @author ydcun 获取云空间的信息 例如 * { quota : 空间配额 单位为字节 * used : 已使用空间大小 单位为字节 * request_id : } */ public class CloudInfo{ private Double quota; private Double used; private Double request_id; /** * @return the quota 空间配额 单位为字节 */ public Double getQuota() { return quota; } /** * @param quota the quota to set 空间配额 单位为字节 */ public void setQuota(Double quota) { this quota = quota; } /** * @return the used 已使用空间大小 单位为字节 */ public Double getused() { return used; } /** * @param used the used to set 已使用空间大小 单位为字节 */ public void setused(Double used) { this used = used; } /** * @return the request_id */ public Double getRequest_id() { return request_id; } /** * @param request_id the request_id to set */ public void setRequest_id(Double request_id) { this request_id = request_id; } @Override public String toString() { return new StringBuffer() append( 空间容量 ) append(this getQuota()/ / ) append( M; 已用 ) append(this getused()/ / ) append( M; ) toString() } }
lishixinzhi/Article/program/Java/hx/201311/27162
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API文档是一个技术内容交付文件,包含如何有效地使用和集成api的说明。它是一个简明的参考手册,包含了使用API所需的所有信息,详细介绍了函数、类、返回类型、参数等,并有教程是示例支撑。
API文档传统上是使用常规内容创建和维护工具和文本编辑器完成的。API描述格式如OpenAPI /Swagger规范具有自动文档编制流程,它使得团队更容易生成和维护API文档。
扩展资料:
Windows API
API函数包含在Windows系统目录下的动态连接库文件中。Windows API是一套用来控制Windows的各个部件的外观和行为的预先定义的Windows函数。用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。
这在某种程度上很像Windows的天然代码。而其他的语言只是提供一种能自动而且更容易的访问API的方法。当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体,VB获取这个调用并经过分析后生成一个特定事件。
更易理解来说:Windows系统除了协调应用程序的执行、内存的分配、系统资源的管理外,同时他也是一个很大的服务中心。
调用这个服务中心的各种服务(每一种服务就是一个函数)可以帮助应用程序达到开启视窗、描绘图形和使用周边设备等目的,由于这些函数服务的对象是应用程序,所以称之为Application Programming Interface,简称API 函数。
WIN32 API也就是MicrosoftWindows 32位平台的应用程序编程接口。凡是在 Windows工作环境底下执行的应用程序,都可以调用Windows API。
linux API
在linux中,用户编程接口API遵循了UNIX中最流行的应用编程界面标准---POSIX标准。POSIX标准是由IEEE和ISO/IEC共同开发的标准系统。
该标准基于当时现有的UNIX实践和经验,描述了操作系统的系统调用编程接口API,用于保证应用程序可以在源程序一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过C库(LIBC)来实现的。
参考资料:百度百科-api
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~