移动开发接口文档(开发接口文档示例)

网友投稿 318 2023-02-13


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

本文目录一览:

如何使用接口文档,查出相对应的信息 php

微信接口举例:

获取关注者信息接口

1、接口使用说明

//获取用户基本信息
public function get_user_info($openid){
    $url = "
$this-access_token."openid=".$openid."lang=zh_CN";
    $res = $this-https_request($url);
    return json_decode($res, true);
}

接口调用请求说明

http请求方式: GET

2、使用https_request,GET方式

//https请求(支持GET和POST)
protected function https_request($url, $data = null){
       $curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($curl, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
if (!empty($data)){
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
}
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($curl);
curl_close($curl);
return $output;
}

3、正常情况下,微信会返回下述JSON数据包给公众号:

{
    "subscribe": 1, 
    "openid": "o6_bmjrPTlm6_2sgVt7hMZOPfL2M", 
    "nickname": "Band", 
    "sex": 1, 
    "language": "zh_CN", 
    "city": "广州", 
    "province": "广东", 
    "country": "中国", 
    "headimgurl":    "

   "subscribe_time": 1382694957,
   "unionid": " o6_bmasdasdsad6_2sgVt7hMZOPfL"
   "remark": "",
   "groupid": 0
}

4、json_decode解析JSON获取,接口信息

5、打印接口返回信息

$data = $this-get_user_info('openid');
print_r($data);

所有接口使用类似,主要就是curl发送GET或POST请求,返回接口获取信息。

微信公众号接口是目前移动WEB开发,用的比较多的、文档也较齐全;有许多公司、开发人员都在使用的接口之一;接口使用度比较广、用户人数众多、比较稳定。由于你没有具体指出是什么接口。用微信接口举例,可以让更多的人可以理解。

具体接口详情(微信公众号开发者文档)http://mp.weixin.qq.com/wiki/1/8a5ce6257f1d3b2afb20f83e72b72ce9.html 获取用户基本信息接口

免费API接口的试用开发文档有吗

Api接口就好比一个媒介工具移动开发接口文档,比如买东西移动开发接口文档的时候移动开发接口文档我们要计算价格移动开发接口文档,可以用算盘、计算器、手机或者电脑进行计算得出结果。接口与其类似,当你需要用到这个功能时就可以调用。
Api接口可以应用于pc端、app、软件等,除了接口一般会有Api接口文档说明来帮助开发者使用。
下面来分享一下免费的api接口以及文档说明:
1. 邮编查询:
接口地址:http://v.juhe.cn/postcode/query
返回格式:json/xml
请求方式:http get/post
请求示例:http://v.juhe.cn/postcode/query?postcode=215001key=申请的KEY
接口备注:通过邮编查询对应的地名
请求参数说明:
名称 类型 必填 说明
postcode 是 string 邮编,如:215001
key 是 string 应用APPKEY(应用详细页查询)
page 否 int 页数,默认1
pagesize 否 int 每页返回,默认:20,最大不超过50
dtype 否 string 返回数据的格式,xml或json,默认json
返回参数说明:
名称 类型 说明
error_code int 返回码
reason string 返回说明
JSON返回示例:
{
"reason": "successed",
"result": {
"list": [
{
"PostNumber": "215001",
"Province": "江苏省",
"City": "苏州市",
"District": "平江区",
"Address": "廖家巷新光里"
},
{
"PostNumber": "215001",
"Province": "江苏省",
"City": "苏州市",
"District": "平江区",
"Address": "龙兴桥顺德里"
}
],
"totalcount": 352,
"totalpage": 176,
"currentpage": 1,
"pagesize": "2"
},
"error_code": 0
}
2. 手机号码归属地:
接口地址:http://apis.juhe.cn/mobile/get
返回格式:json/xml
请求方式:get
请求示例:http://apis.juhe.cn/mobile/get?phone=13429667914key=您申请的KEY
请求参数说明:
名称 类型 必填 说明
phone 是 int 需要查询的手机号码或手机号码前7位
key 是 string 应用APPKEY(应用详细页查询)
dtype 否 string 返回数据的格式,xml或json,默认json
返回参数说明:
名称 类型 说明
error_code int 返回码
reason string 返回说明
result string 返回结果集
province string 省份
city string 城市,(北京、上海、重庆、天津直辖市可能为空)
areacode string 区号,(部分记录可能为空)
zip string 邮编,(部分记录可能为空)
company string 运营商
JSON返回示例:
{
"resultcode":"200",
"reason":"Return Successd!",
"result":{
"province":"浙江",
"city":"杭州",
"areacode":"0571",
"zip":"310000",
"company":"中国移动",
"card":""
}
}
XML返回示例:
<?xml version="1.0" encoding="utf-8" ?
- <root
<resultcode200</resultcode
<reasonReturn Successd!</reason
- <result
<province浙江</province
<city杭州</city
<areacode0571</areacode
<zip310000</zip
<company中国移动</company
<card</card
</result
</root
3. 影视影讯检索:
接口地址:http://op.juhe.cn/onebox/movie/video
返回格式:json/xml
请求方式:http get/post
请求事例http://op.juhe.cn/onebox/movie/video?key=APPKEYq=%E5%BA%B7%E7%86%99%E7%8E%8B%E6%9C%9D
接口备注:电影:q=心花路放移动开发接口文档;电视剧:q=继承者们;动漫:q=柯南
请求参数说明:
名称 类型 必填 说明
key 是 string 应用APPKEY(应用详细页查询)
dtype 否 string 返回数据的格式,xml或json,默认json
q 是 string 影视搜索名称
返回参数说明:
名称 类型 说明
error_code int 返回码
reason string 返回说明
JSON返回示例:
{
"reason": "查询成功",
"result": {
"title": "闪电侠第一季",
"tag": "科幻 / 动作",
"act": "格兰特·古斯汀 埃涅·赫德森 汤姆·卡瓦纳夫",
"year": "2014",
"rating": null,
"area": "美国",
"dir": "大卫·努特尔",
"desc": "《闪电侠》精彩看点:二次元超级英雄再登电视荧屏,《闪电侠》无缝对接《绿箭侠》闪耀登场。《闪电侠》剧情梗概:《闪电侠》的漫画连载开始于1940年,讲述了一名拥有超级速度的学生的故事。50年代起,这个角色则被重新诠释,成为了巴里·艾伦,一名为警署工作的科学家,使用他的超级速度来对抗超级反派们。",
"cover": "http://i.gtimg.cn/qqlive/img/jpgcache/files/qqvideo/0/0l01jm9yobh4xo4.jpg",
"vdo_status": "play",
"playlinks": {
"youku": "http://v.youku.com/v_show/id_XODQ1NTAzNDE2.html?tpa=dW5pb25faWQ9MTAyMjEzXzEwMDAwNl8wMV8wMQ",
"qq": "http://v.qq.com/cover/0/0l01jm9yobh4xo4/g0015dn2fw1.html",
"leshi": "http://www.letv.com/ptv/vplay/21416940.html",
"pptv": "http://v.pptv.com/show/2uhW1T2jE1G0Mr4.html",
"sohu": "http://tv.sohu.com/20141210/n406824703.shtml?txid=4e4df35dda9d8ed32c874b1ad590ef59"
},
"video_rec": [
{
"detail_url": "http://kan.com/tv/PrVtaX7kRzXsMn.html",
"cover": "http://p2.qhimg.com/t01f969930fae67d1ec.jpg",
"title": "神盾局特工 第2季"
},
{
"detail_url": "http://kan.com/tv/Q4RvaqOoRmDuMX.html",
"cover": "http://p6.qhimg.com/t0160a8a6f5b768034a.jpg",
"title": "遗失的世界"
},
{
"detail_url": "http://kan.com/tv/Q4Frc3GoRmbuMX.html",
"cover": "http://p7.qhimg.com/t01513514907831e055.jpg",
"title": "浩劫余生 第一季"
},
{
"detail_url": "http://kan.com/tv/QrFob33oRGboMX.html",
"cover": "http://p6.qhimg.com/d/_hao360/video/img200909_18_145544738.jpg",
"title": "新绿野仙踪之铁皮人"
},
{
"detail_url": "http://kan.com/tv/QrRtbaOpRz4nOH.html",
"cover": "http://p1.qhimg.com/t01d2996b3305923b91.jpg",
"title": "陨落星辰第三季"
}
],
"act_s": [
{
"name": "格兰特·古斯汀",
"url": "http://baike.so.com/doc/2041872.html",
"image": "http://p3.qhimg.com/dmsmty/120_110_100/t019f2fb2f92c6cb2cf.jpg"
},
{
"name": "埃涅·赫德森",
"url": "http://baike.so.com/doc/3938849.html",
"image": "http://p2.qhimg.com/dmsmty/120_110_100/t0169332727e692e9fa.jpg"
},
{
"name": "汤姆·卡瓦纳夫",
"url": "http://baike.so.com/doc/7521211.html",
"image": "http://p0.qhimg.com/dmsmty/120_110_100/t01d271d8c090330ae2.jpg"
}
]
},
"error_code": 0
}
4. 商品比价查询:
API调用地址:
http://sapi.manmanbuy.com/Search.aspx?AppKey=申请appkeyKey=搜索关键词Class=分类IDBrand=品牌IDSite=商城IDPriceMin=最低价PriceMax=最高价PageNum=页号PageSize=每页商品数OrderBy=排序方式ZiYing=是否自营ExtraParameter=扩展参数
调用示例
http://sapi.manmanbuy.com/Search.aspx?AppKey=123456Key=iphoneClass=0Brand=0Site=0PriceMin=0PriceMax=0PageNum=1PageSize=30OrderBy=scoreZiYing=falseExtraParameter=0
返回结果示例(以iphone为例,显示前2条商品信息):
{"State":1000,"SearchItemsCount":101520,"SearchCount":5109,"ClassList":"57|1074|手机,893|29964|iPhone 配件,892|19512|手机保护套,910|11169|苹果配件, 890|8766|手机贴膜 ,894|6201|其它配件,900|3189|移动电源,889|2067|手机充电器,898|1923|电池/充电器,101|1518|耳机,888|1290|手机电池, 100|1074|蓝牙耳机","BrandList":"155|47184|苹果,0|40476|,634|2166|洛克,6|1134|三星,622|1023|倍思,261|564|品胜,652|558|SGP, 639|537|ESR,623|474|邦克仕,10|423|飞利浦,604|330|摩米士,664|291|优胜仕","SiteList":"1|66732|京东商城,4|8478|亚马逊,3|7917| 当当,13|4821|1号店,6|4605|苏宁易购,8|4149|国美在线,11|3882|易迅网,9|360|新蛋网,161|168|飞牛网,185|147|顺电网,124|123|高鸿商城, 123|69|华强北","SearchResultList":[{"spname":"苹果(Apple)iPhone 6 (A1586) 16GB 金色 移动联通电信4G手机", "sppic":"http://img14.360buyimg.com/n7/jfs/t277/193/1005339798/768456/29136988/542d0798N19d42ce3.jpg", "spurl":"http://item.jd.com/1217499.html","spprice":"5188.00","className":"手机","brandName":"苹果","siteName":"京东商城", "commentUrl":"http://item.jd.com/1217499.html#comments-list","commentCount":"8773", "TitleHighLighter":"苹果(Apple)iPhone 6 (A1586) 16GB 金色 移动联通电信4G手机","ziying":"1","siteid":"1","id":"98084930"}, {"spname":"苹果(Apple)iPhone 6 Plus (A1524) 16GB 金色 移动联通电信4G手机", "sppic":"http://img14.360buyimg.com/n7/jfs/t346/302/1010969394/231745/50f20b36/542d0e26N894372e9.jpg", "spurl":"http://item.jd.com/1217524.html","spprice":"5988.00","className":"手机","brandName":"苹果","siteName":"京东商城", "commentUrl":"http://item.jd.com/1217524.html#comments-list","commentCount":"10288", "TitleHighLighter":"苹果(Apple)iPhone 6 Plus (A1524) 16GB 金色 移动联通电信4G手机","ziying":"1","siteid":"1","id":"98084932"}]}

Android APP开发需求文档范本

软件需求文档格式的标准写法
1.引言

1.1 编写目的

· 阐明开发本软件的目的;

1.2 项目背景

· 标识待开发软件产品的名称、代码;

· 列出本项目的任务提出者、项目负责人、系统分析员、系统设计员、程序设计员、程序员、资料员以及与本项目开展工作直接有关的人员和用户;

· 说明该软件产品与其他有关软件产品的相互关系。

1.3 术语说明

列出本文档中所用到的专门术语的定义和英文缩写词的原文。

1.4 参考资料(可有可无)

列举编写软件需求规格说明时所参考的资料,包括项目经核准的计划任务书、合

同、引用的标准和规范、项目开发计划、需求规格说明、使用实例文档,以及相关产品

的软件需求规格说明。

在这里应该给出详细的信息,包括标题、作者、版本号、发表日期、出版单位或资

料来源。

2.项目概述

2.1 待开发软件的一般描述

描述待开发软件的背景,所应达到的目标,以及市场前景等。

2.2 待开发软件的功能

简述待开发软件所具有的主要功能。为了帮助每个读者易于理解,可以使用列表或

图形的方法进行描述。使用图形表示,可以采用:

· 顶层数据流图;

· 用例UseCase图;

· 系统流程图;

· 层次方框图。

2.3 用户特征和水平(是哪类人使用)

描述最终用户应具有的受教育水平、工作经验及技术专长。

2.4 运行环境

描述软件的运行环境,包括硬件平台、硬件要求、操作系统和版本,以及其他的软

件或与其共存的应用程序等。

2.5 条件与限制

给出影响开发人员在设计软件时的约束条款,例如:

· 必须使用或避免使用的特定技术、工具、编程语言和数据库;

· 硬件限制;

· 所要求的开发规范或标准。

3.功能需求

3.1 功能划分

列举出所开发的软件能实现的全部功能,可采用文字、图表或数学公式等多种方法

进行描述。

3.2 功能描述

对各个功能进行详细的描述。

4.外部接口需求

4.1 用户界面

对用户希望该软件所具有的界面特征进行描述。以下是可能要包括的一些特征:

· 将要采用的图形用户界面标准或产品系列的风格;

· 屏幕布局;

· 菜单布局;

· 输入输出格式;

· 错误信息显示格式;

建议采用RAD开发工具, 比如Visio,构造用户界面。

4.2 硬件接口

描述系统中软件产品和硬件设备每一接口的特征,以及硬件接口支持的设备、软件与硬件接口之间,以及硬件接口与支持设备之间的约定,包括交流的数据和控制信息的性质以及所使用的通信协议。

4.3 软件接口

描述该软件产品与其有关软件的接口关系,并指出这些外部软件或组件的名字和版本号。比如运行在什么操作系统上,访问何种类型的数据库,使用什么数据库连接组件,和什么商业软件共享数据等。

4.4 通信接口

描述和本软件产品相关的各种通信需求,包括电子邮件、Web浏览器、网络通信协议等。

4.5 故障处理

对可能的软件、硬件故障以及对各项性能而言所产生的后果进行处理。

5.性能需求

5.1 数据精确度

输出结果的精度。

5.2 时间特性

时间特性可包括如下几方面

·响应时间;

·更新处理时间;

·数据转换与传输时间;

·运行时间等。

5.3 适应性

在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,软件的适应能力。

6.其他需求

列出在本文的其他部分未出现的需求。如果不需要增加其他需求,可省略这一部分。

7.数据描述

7.1 静态数据

7.2 动态数据

包括输入数据和输出数据。

7.3 数据库描述

给出使用数据库的名称和类型。

7.4 数据字典

对于数据流图、层次方框图中出现的所有图形元素在数据字典中都要作为一个词条加以定义,使得每一个图形元素都有唯一的一个清晰明确的解释。

数据字典中所有的定义必须是严密的、精确的,不可有二意性。

7.5 数据采集

·列出提供输入数据的机构、设备和人员

·列出数据输入的手段、介质和设备;

·列出数据生成的方法、介质和设备。

8.附录

包括分析模型,待定问题图表等。

支付宝手机网站开发文档1.0怎么弄的

支付宝手机网站支付
支付宝手机网站支付是支付宝提供的多种支付方式之一。适用于在手机端网站配合业务流程完成支付宝支付。此接口不仅可以在手机网页中唤起“支付宝app”客户端。也可以继续使用手机浏览器版的收银台完成支付。
一、前期准备
1.1签约“手机网站支付”功能。
使用手机网站支付之前需要签约改接口。签约需要到支付宝商家平台进行操作。页面右上角有个签约按钮。登录状态点击“立即签约”进行操作。如下图:
1.2签约需要准备的资料
签约需要准备的资料
1.营业执照
2.企业类型商户若网站备案主体与签约主体不一致,需提供备案授权函。
3.填写企业经营信息、网址信息、商户联系人信息。提交
签约成功之后,在支付宝商家服务平台可以看到。
在等待签约申请处理的过程中。我们可以先去创建应用。
二、创建应用
2.1创建应用得到APPID
进入蚂蚁金服开放平台,在管理中心中,应用管理里边创建应用。如下图,点击创建应用。创建应用之后,可以在应用列表里边看到appid.
2.2配置应用秘钥
2.2.1下载秘钥生成工具。
下载地址。
解压打开文件夹,直接运行“支付宝RAS密钥生成器SHAwithRSA1024_V1.0.bat”(WINDOWS)或“SHAwithRSA1024_V1.0.command”(MACOSX),点击“生成RSA密钥”,会自动生成公私钥。(注意:工具不要放在中文命名的文件夹路径下,否则双击bat之后可能会没反应)。生成的key文件如下:
在这三个秘钥文件中,对于私钥,java语言需要使用rsa_private_key_pkcs8.pem文本中的秘钥内容。rsa_public_key.pem文件中的内容需要配置到应用里面去。
2.2.2配置秘钥
应用创建之后,点击查看。可以看到应用的详细信息。点击应用环境可以配置秘钥。复制rsa_public_key.pem文件中的秘钥,点击“设置应用公钥”保存之后的效果如下图。
如图,点击查看支付宝公钥。会弹出一个窗口,复制其中的秘钥文本。作为程序中的参数“支付宝公钥”(不是应用公钥)。
2.3添加应用功能
创建应用之后,比如我们需要在应用中配置应用所具备的功能。本例中是要使用“手机网站支付”。所以,在功能信息里边添加就可了。点击申请功能可以看到一个功能列表,勾选保存即可。如下图:
2.4应用上线
创建应用之后,状态是“开发中”的状态。需要进行上线才能调用接口。否则会出现如下错误:
如图所示,应用上线直接在管理中心,应用列表里边操作就可以了。点击上线按钮
需要准备的材料有应用图标和一个应用说明文档。如下图:
三、使用沙箱环境开发
应用审核需要1个工作日的时间。在应用未上线之前,调用接口会报错。所以可以先用沙箱环境进行开发。
3.1拿到沙箱环境的网关、appId和账号信息
沙箱环境非常方便。并且可以使用个人账号的沙箱环境配置进行开发。非常方便。使用个人账号登录蚂蚁金服开放平台。点击“沙箱应用”可以看到如下图,已经默认创建了一个应用了。在这里我们可以拿到沙箱环境网关,沙箱应用的appId,和用于测试的商家以及买家账号信息,这些信息足够了。正式应用的参数拿到之后直接替换就可以了。
点击“沙箱账号”发现,提供了商家信息和买家信息。并且账户余额有九万多。支付密码,登录密码都有,测试支付过程非常方便。
3.2下载SDK参照文档进行开发
SDK下载地址
手机网站支付接口
3.3替换正式参数配置并上线
沙箱开发完毕之后,只需要把正式的appId,秘钥和网关,替换一下就可以了。
个人感觉支付宝支付比微信支付开发简单多了。方便多了。遇到问题,咨询客服响应特别快,还都能解决问题。微信的就呵呵了,使用官方提供的开发者工具有问题,发邮件咨询之后反馈的结果是:那个工具有bug,建议不要使用直接用真机测试。测试账号还没有那么多的权限。

如何使 WebAPI 自动生成漂亮又实用在线API文档

1.1 SwaggerUI
SwaggerUI 是一个简单的Restful API 测试和文档工具。简单、漂亮、易用(官方demo)。通过读取JSON 配置显示API. 项目本身仅仅也只依赖一些 html,css.js静态文件. 你可以几乎放在任何Web容器上使用。
1.2 Swashbuckle
Swashbuckle 是.NET类库,可以将WebAPI所有开放的控制器方法生成对应SwaggerUI的JSON配置。再通过SwaggerUI 显示出来。类库中已经包含SwaggerUI 。所以不需要额外安装。
2.快速开始
创建项目 OnlineAPI来封装百度音乐服务(示例下载) ,通过API可以搜索、获取音乐的信息和播放连接。
我尽量删除一些我们demo中不会用到的一些文件,使其看上去比较简洁。
WebAPI 安装 Swashbuckle
Install-Package Swashbuckle
代码注释生成文档说明。
Swashbuckle 是通过生成的XML文件来读取注释的,生成 SwaggerUI,JSON 配置中的说明的。
安装时会在项目目录 App_Start 文件夹下生成一个 SwaggerConfig.cs 配置文件,用于配置 SwaggerUI 相关展示行为的。如图:
将配置文件大概99行注释去掉并修改为
c.IncludeXmlComments(GetXmlCommentsPath(thisAssembly.GetName().Name));
并在当前类中添加一个方法
/// <summary
/// </summary
/// <param name="name"</param
/// <returns</returns
protected static string GetXmlCommentsPath(string name)
{
return string.Format(@"{0}\bin\{1}.XML", AppDomain.CurrentDomain.BaseDirectory, name);
}
紧接着你在此Web项目属性生成选卡中勾选 “XML 文档文件”,编译过程中生成类库的注释文件
添加百度音乐 3个API
访问 lt;youhost/swagger/ui/index,最终显示效果
我们通过API 测试API 是否成功运行
3.添加自定义HTTP Header
在开发移动端 API时常常需要验证权限,验证参数放在Http请求头中是再好不过了。WebAPI配合过滤器验证权限即可
首先我们需要创建一个 IOperationFilter 接口的类。IOperationFilter
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Http.Description;
using System.Web.Http.Filters;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
public class HttpHeaderFilter : IOperationFilter
{
public void Apply(Operation operation, SchemaRegistry
schemaRegistry, ApiDescription apiDescription)
{
if (operation.parameters == null) operation.parameters = new
List<Parameter();
var filterPipeline =
apiDescription.ActionDescriptor.GetFilterPipeline();
//判断是否添加权限过滤器
var isAuthorized = filterPipeline.Select(filterInfo =
filterInfo.Instance).Any(filter = filter is IAuthorizationFilter);
//判断是否允许匿名方法
var allowAnonymous =
apiDescription.ActionDescriptor.GetCustomAttributes<AllowAnonymousAttribute().Any();
if (isAuthorized !allowAnonymous)
{
operation.parameters.Add(new Parameter
{
name = "access-key",
@in = "header",
description = "用户访问Key",
required = false,
type = "string"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法类添加一行注册代码
c.OperationFilter<HttpHeaderFilter();
添加Web权限过滤器
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Http.Controllers;
using Newtonsoft.Json;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class AccessKeyAttribute : AuthorizeAttribute
{
/// <summary
/// 权限验证
/// </summary
/// <param name="actionContext"</param
/// <returns</returns
protected override bool IsAuthorized(HttpActionContext actionContext)
{
var request = actionContext.Request;
if (request.Headers.Contains("access-key"))
{
var accessKey = request.Headers.GetValues("access-key").SingleOrDefault();
//TODO 验证Key
return accessKey == "123456789";
}
return false;
}
/// <summary
/// 处理未授权的请求
/// </summary
/// <param name="actionContext"</param
protected override void HandleUnauthorizedRequest(HttpActionContext actionContext)
{
var content = JsonConvert.SerializeObject(new {State = HttpStatusCode.Unauthorized});
actionContext.Response = new HttpResponseMessage
{
Content = new StringContent(content, Encoding.UTF8, "application/json"),
StatusCode = HttpStatusCode.Unauthorized
};
}
}
}
在你想要的ApiController 或者是 Action 添加过滤器
[AccessKey]
最终显示效果
4.显示上传文件参数
SwaggerUI 有上传文件的功能和添加自定义HTTP Header 做法类似,只是我们通过特殊的设置来标示API具有上传文件的功能
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http.Description;
using Swashbuckle.Swagger;
namespace OnlineAPI.Utility
{
/// <summary
///
/// </summary
public class UploadFilter : IOperationFilter
{
/// <summary
/// 文件上传
/// </summary
/// <param name="operation"</param
/// <param name="schemaRegistry"</param
/// <param name="apiDescription"</param
public void Apply(Operation operation, SchemaRegistry schemaRegistry, ApiDescription apiDescription)
{
if (!string.IsNullOrWhiteSpace(operation.summary) operation.summary.Contains("upload"))
{
operation.consumes.Add("application/form-data");
operation.parameters.Add(new Parameter
{
name = "file",
@in = "formData",
required = true,
type = "file"
});
}
}
}
}
在 SwaggerConfig.cs 的 EnableSwagger 配置匿名方法类添加一行注册代码
c.OperationFilter<UploadFilter();
API 文档展示效果

Restful接口文档规范

基于目前的大前端时代,对于常年负责后台开发的我来说, 最重要的就是提供稳定的接口和文档。便于小伙伴们进行业务对接。

当下常用的是RestFul风格的定义规范, 之前开发是清一色Get、Post。引入RestFul后感觉接口定义规范很多,看接口地址就知晓是什么功能, 一起来看看列的一些基础规范吧。
API与客户端用户的通信协议,总是使用HTTPS协议,以确保交互数据的传输安全。
应该尽量将API部署在专用域名之下: https://api.example.com

如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下: https://www.example.com/api
https://api.example.com/v{n}

1、应该将API的版本号放入URL。

2、采用多版本并存,增量发布的方式。

3、n代表版本号,分为整型和浮点型

整型: 大功能版本, 如v1、v2、v3 ...

浮点型: 补充功能版本, 如v1.1、v1.2、v2.1、v2.2 ...

4、对于一个 API 或服务,应在生产中最多保留 3 个最详细的版本
路径又称"终点"(end point),表示API的具体网址。

1、在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词。

【所用的名词往往与数据库的表格名对应】

2、数据库中的表一般都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。

例子: https://api.example.com/v1/products

https://api.example.com/v1/users

https://api.example.com/v1/employees
GET(SELECT): 从服务器取出资源(一项或多项)。

POST(CREATE): 在服务器新建一个资源。

PUT(UPDATE): 在服务器更新资源(客户端提供改变后的完整资源)。

DELETE(DELETE): 从服务器删除资源。

例子:

GET /v1/products 获取所有商品

GET /v1/products/ID 获取某个指定商品的信息

POST /v1/products 新建一个商品

PUT /v1/products/ID 更新某个指定商品的信息

DELETE /v1/products/ID 删除某个商品,更合理的设计详见【9、非RESTful API的需求】

GET /v1/products/ID/purchases 列出某个指定商品的所有投资者

GET /v1/products/ID/purchases/ID 获取某个指定商品的指定投资者信息
若记录数量很多,服务器不可能返回全部记录给用户。

API应该提供分页参数及其它筛选参数,过滤返回结果。

/v1/products?page=1pageSize=20 指定第几页,以及每页的记录数。

/v1/products?sortBy=nameℴ=asc 指定返回结果按照哪个属性排序,以及排序顺序。
传入参数分为4种类型:

1、cookie: 一般用于OAuth认证

2、request header: 一般用于OAuth认证

3、请求body数据:

4、地址栏参数:

1)restful 地址栏参数 /v1/products/ID ID为产品编号,获取产品编号为ID的信息

2)get方式的查询字段 见【六、过滤信息】
response:

----------------------------------------

{

status: 200, // 详见【status】

data: {

code: 1, // 详见【code】

data: {} || [], // 数据

message: '成功', // 存放响应信息提示,显示给客户端用户【须语义化中文提示】

sysMessage: 'success' // 存放响应信息提示,调试使用,中英文都行

... // 其它参数,如 total【总记录数】等

},

msg: '成功', // 存放响应信息提示,显示给客户端用户【须语义化中文提示】

sysMsg: 'success' // 存放响应信息提示,调试使用,中英文都行

}

----------------------------------------

【status】:

200: OK 400: Bad Request 500:Internal Server Error

401:Unauthorized

403:Forbidden

404:Not Found

【code】:

1: 获取数据成功 | 操作成功 0:获取数据失败 | 操作失败
1、实际业务开展过程中,可能会出现各种的api不是简单的restful 规范能实现的。

2、需要有一些api突破restful规范原则。

3、特别是移动互联网的api设计,更需要有一些特定的api来优化数据请求的交互。

1)、删除单个 | 批量删除 : DELETE /v1/product body参数{ids:[]}

2)、页面级API : 把当前页面中需要用到的所有数据通过一个接口一次性返回全部数据
1、前端需要哪些字段,API接口应该返回哪些字段,字段不多也不少。

2、更新功能尽量做到:初次返回的原始数据参数与提交更新的数据参数结构一致。

3、时间参数,尽量以一致格式的字符串传递, 如:

‘2019-01’ | ‘2019/01’

‘2019-01-01’ | ‘2019/01/01’

‘2019-01-01 12:12:12’ | ‘2019/01/01 12:12:12’
1、尽量采用自动化接口文档,可以做到在线测试,同步更新。

2、应包含:接口BASE地址、接口版本、接口模块分类等。

3、每个接口应包含:

接口地址:不包含接口BASE地址。

请求方式: get、post、put、delete等。

请求参数:数据格式【默认JSON、可选form data】、数据类型、是否必填、中文描述。

相应参数:类型、中文描述。 关于移动开发接口文档和开发接口文档示例的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 移动开发接口文档的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于开发接口文档示例、移动开发接口文档的信息别忘了在本站进行查找喔。

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

上一篇:软件接口测试方法(软件接口测试工具)
下一篇:mpvue中配置vuex并持久化到本地Storage图文教程解析
相关文章

 发表评论

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