api接口文档
API接入使用文档

API接入使用文档1.概述2.准备工作在使用API接入之前,需要进行一些准备工作:-确认API提供方是否提供了接入文档和相关信息。
-获取API接入的权限、密钥等认证信息。
-阅读并理解接入文档中的相关说明和规范。
3.接入步骤接入API一般有以下几个步骤:3.1确定接口需求在接入API之前,需要明确接入的目的和需求,确定需要使用的API 接口和对应的功能。
3.2获取接入信息3.3编写代码根据接口文档中的说明,编写代码实现对API的调用。
代码可以使用各种编程语言和框架来实现。
3.4调试和测试完成代码编写后,需要进行调试和测试。
可以通过模拟数据或者实际数据进行测试,确保API调用的正确性和稳定性。
3.5上线和发布在完成调试和测试后,可以将代码部署到生产环境中,进行正式的使用和发布。
4.注意事项在使用API接入时,需要注意以下几点:4.1安全性在接入API时,需要确保数据传输的安全性。
可以使用HTTPS等安全传输协议来加密数据传输,防止数据的泄漏和攻击。
4.2验证和授权在调用API时,需要进行验证和授权,确保只有合法的用户和应用程序可以访问API。
可以使用认证信息、密钥等方式进行验证和授权。
4.3错误处理在调用API时,需要考虑错误处理机制。
如何处理网络错误、超时错误等情况,以及如何处理API返回的错误信息等。
4.4限流和流量控制为了保证系统的稳定性和可用性,API提供方可能会对接口的访问做限制和控制。
在使用API时,需要了解相关的限流和流量控制规则,并进行合理的调整和优化。
5.API文档5.1接口描述对每个API接口进行详细的描述,包括接口的功能、参数、返回值等信息。
5.2调用示例提供调用API的示例代码,包括请求参数的设置、API调用的方法和结果的解析等。
5.3错误码和错误信息对可能的错误码和错误信息进行详细的说明,包括每个错误码对应的含义和解决方案等。
5.4接口规范和限制对接口的规范和限制进行说明,如请求频率限制、参数格式要求等。
api接口说明文档模板文

api接口说明文档模板文API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力今天小编给大家整理了api知识供大家参考,我们一起来看看吧!api接口说明文档模板1API:应用程序接口(API:Application Program Interface)应用程序接口是一组定义、程序及协议的集合,通过API 接口实现计算机软件之间的相互通信。
API 的一个主要功能是提供通用功能集。
程序员通过调用API 函数对应用程序进行开发,可以减轻编程任务。
API 同时也是一种中间件,为各种不同平台提供数据共享。
根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将 API 分为四种类型:远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。
标准查询语言(SQL):是标准的访问数据的查询语言,通过数据库实现应用程序间的数据共享。
文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。
信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。
当前应用于 API 的标准包括 ANSI 标准 SQL API。
另外还有一些应用于其它类型的标准尚在制定之中。
API 可以应用于所有计算机平台和操作系统。
这些 API 以不同的格式连接数据(如共享数据缓存器、数据库结构、文件框架)。
每种数据格式要求以不同的数据命令和参数实现正确的数据通信,但同时也会产生不同类型的错误。
因此,除了具备执行数据共享任务所需的知识以外,这些类型的API 还必须解决很多网络参数问题和可能的差错条件,即每个应用程序都必须清楚自身是否有强大的性能支持程序间通信。
相反由于这种API 只处理一种信息格式,所以该情形下的信息交付API 只提供较小的命令、网络参数以及差错条件子集。
正因为如此,交付API 方式大大降低了系统复杂性,所以当应用程序需要通过多个平台实现数据共享时,采用信息交付 API 类型是比较理想的选择。
开发接口文档API文档模板

版本控制信息版本日期描绘作者2018-8-13创立XXX获得全部字段1.1获得全部字段恳求地点:/session/field/findAll恳求参数参数名必填字段种类描绘name 是String 依据名称挑选响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":{"types":null,"villages":nu ll,"companys":[{"iconColour":"","iconSize":0,"iconStyle":"","id":4,"name":"XX"},{"iconColour":"","iconSize": 0,"iconStyle":"","id":5,"name":"XX"},{"iconColour":"","iconSize":0,"iconStyle":"","id":7,"name":"XX"}]},"tot als":0}文件上传2.1文件上传(ajax)恳求地点:/session/file/upload恳求参数参数名必填字段种类描绘file 是FormData FormData对象包括的文件响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:varformData=newFormData(); ("file",[0]);$.ajax({url:routePath+"/session/file/upload", type:'POST',data:formData,processData:false,contentType:false,success:function(result){result=(result);if=="10000"){ ('上传成功!');editHeadPortrait").val} }});响应例子:returnValue 里包括了fileName 和filePath字段管理-所属种类3.1新增所属种类恳求地点:/session/fieldType/save恳求参数参数名必填字段种类描绘name 是String 所属种类名称响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"to tals":0}3.2改正所属种类恳求地点:/session/fieldType/update恳求参数参数名必填字段种类描绘id 是Long 所属种类idname 是String 所属种类名称响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:&name=test响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":" 成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"to tals":0}3.3依据id获得所属种类恳求地点:/session/fieldType/getById恳求参数参数名必填字段种类描绘id 是Long 所属种类id响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":{"id":2, "name":"re"},"totals":0}3.4获得所属种类列表恳求地点:/session/fieldType/selectAll恳求参数参数名必填字段种类描绘name 否String 依据种类名称挑选响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":[{"id":1,"name":"123"},{"id ":6,"name":"145555"}],"totals":2}3.5删除所属种类(批量)恳求地点:/session/fieldType/deleteByIds恳求参数参数名必填字段种类描绘ids 是List 所属种类id会合响应code 10000成功,-1系统错误,10001必填参数为空message 响应描绘result 如响应例子恳求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"t otals":0}。
汉印云打印 开放API 接口文档 使用说明书

【汉印云打印】开放API接口文档版本(1.1)2018年10月汉印云打印平台.接口文档V1.1目录1.概述: (1)2.打印接口: (1)2.1API接口地址 (1)2.2API请求方式 (1)2.3API调用方法 (1)2.4系统级和应用级的参数 (2)2.5签名加密算法如下: (3)2.6加密示例: (3)2.7需要传递给API的参数是: (3)3.APP调用功能: (4)3.1添加打印机 (4)3.2删除打印机 (5)3.3打印订单 (6)3.4查询打印机状态 (7)3.5查询打印完成情况 (8)4.内容排版标记参数 (10)5.注意事项 (13)6.版本信息: (14)1.概述:汉印云打印平台是以互联网为基础,整合云打印机资源,构建漫游共享的打印平台,向所有用户提供随时随地高质量、标准化的打印服务,包含了云平台、API、云打印服务器、云打印机等,产品广泛应用于快递业、超市、餐饮、社区店、生鲜店等,并致力于成为国内一线互联网云平台。
本文档提供了面向互联网开放的API接口,可有效的实现汉印云打印平台和应用开发者之间的对接,帮助用户和开发者方便地使用云平台的架构和功能。
2.打印接口:本节介绍如何发送数据到汉印云API并通过云平台输出打印指令,以及对应的状态返回码。
2.1API接口地址/api/values2.2API请求方式POST2.3API调用方法发送打印数据到汉印云API请求以及参数应该用POST方法发送。
汉印云API将根据收到的信息验证请求的有效性反馈对应的状态码。
2.4系统级和应用级的参数发送打印数据到汉印云请求必须包含以下参数(系统级参数和应用级参数)。
系统级参数应用级参数2.5签名加密算法如下:Sign=MD5(UserID+PrinterNo+TimeStamp+ApiKey),串在一起后进行MD5加密然后再转成大写,括号里面的参数只需要传入值。
2.6加密示例:000001hcs100171600521498469357ED93DC463FA44A7F8BD1919AE282C 310这是未加密前串在一起的排列,然后把这串字符进行MD5加密得到的结果就是sign的值Sign=MD5(UserID+PrinterNo+TimeStamp+ApiKey)2.7需要传递给API的参数是:UserID、PrinterNo、TimeStamp这3个参数是需要提交给API的。
电商管理后台API接口文档

电商管理后台API接⼝⽂档1. 电商管理后台 API 接⼝⽂档1.1. API V1 接⼝说明接⼝基准地址:http://127.0.0.1:8888/api/private/v1/服务端已开启 CORS 跨域⽀持API V1 认证统⼀使⽤ Token 认证需要授权的 API ,必须在请求头中使⽤ Authorization 字段提供 token 令牌使⽤ HTTP Status Code 标识状态数据返回格式统⼀使⽤ JSON1.1.1. ⽀持的请求⽅法GET(SELECT):从服务器取出资源(⼀项或多项)。
POST(CREATE):在服务器新建⼀个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
HEAD:获取资源的元数据。
OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。
1.1.2. 通⽤返回状态说明状态码含义说明200OK请求成功201CREATED创建成功204DELETED删除成功400BAD REQUEST请求的地址不存在或者包含不⽀持的参数401UNAUTHORIZED未授权403FORBIDDEN被禁⽌访问404NOT FOUND请求的资源不存在422Unprocesable entity[POST/PUT/PATCH] 当创建⼀个对象时,发⽣⼀个验证错误500INTERNAL SERVER ERROR内部错误1.2. 登录1.2.1. 登录验证接⼝请求路径:login请求⽅法:post请求参数参数名参数说明备注username⽤户名不能为空password密码不能为空响应参数参数名参数说明备注id⽤户 IDrid⽤户⾓⾊ IDusername⽤户名mobile⼿机号email邮箱token令牌基于 jwt 的令牌响应数据{"data": {"id": 500,"rid": 0,"username": "admin","mobile": "123","email": "123@","token": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjUwMCwicmlkIjowLCJpYXQiOjE1MTI1NDQyOTksImV4cCI6MTUxMjYzMDY5OX0.eGrsrvwHm-tPsO9r_pxHIQ5i5L1kX9RX444uwnRGaIM"},"meta": {"msg": "登录成功","status": 200}}1.3. ⽤户管理1.3.1. ⽤户数据列表请求路径:users请求⽅法:get请求参数参数名参数说明备注query查询参数可以为空pagenum当前页码不能为空pagesize每页显⽰条数不能为空响应参数参数名参数说明备注totalpage总记录数pagenum当前页码users⽤户数据集合响应数据{"data": {"totalpage": 5,"pagenum": 4,"users": [{"id": 25,"username": "tige117","mobile": "186********","type": 1,"email": "tige112@","create_time": "2017-11-09T20:36:26.000Z","mg_state": true, // 当前⽤户的状态"role_name": "炒鸡管理员"}]},"meta": {"msg": "获取成功","status": 200}}1.3.2. 添加⽤户请求路径:users请求⽅法:post请求参数参数名参数说明备注username⽤户名称不能为空password⽤户密码不能为空email邮箱可以为空mobile⼿机号可以为空响应参数参数名参数说明备注id⽤户 IDrid⽤户⾓⾊ IDusername⽤户名mobile⼿机号email邮箱响应数据{"data": {"id": 28,"username": "tige1200","mobile": "test","type": 1,"openid": "","email": "test@","create_time": "2017-11-10T03:47:13.533Z","modify_time": null,"is_delete": false,"is_active": false},"meta": {"msg": "⽤户创建成功","status": 201}}1.3.3. 修改⽤户状态请求路径:users/:uId/state/:type请求⽅法:put请求参数参数名参数说明备注uId⽤户 ID不能为空携带在url中type⽤户状态不能为空携带在url中,值为 true 或者 false 响应数据{"data": {"id": 566,"rid": 30,"username": "admin","mobile": "123456","email": "bb@","mg_state": 0},"meta": {"msg": "设置状态成功","status": 200}}1.3.4. 根据 ID 查询⽤户信息请求路径:users/:id请求⽅法:get请求参数参数名参数说明备注id⽤户 ID不能为空携带在url中响应参数参数名参数说明备注id⽤户 IDrole_id⾓⾊ IDmobile⼿机号email邮箱响应数据{"data": {"id": 503,"username": "admin3","role_id": 0,"mobile": "00000","email": "new@"},"meta": {"msg": "查询成功","status": 200}}1.3.5. 编辑⽤户提交请求路径:users/:id请求⽅法:put请求参数参数名参数说明备注id⽤户 id不能为空参数是url参数:idemail邮箱可以为空mobile⼿机号可以为空响应参数参数名参数说明备注id⽤户 IDrole_id⾓⾊ IDmobile⼿机号email邮箱响应数据/* 200表⽰成功,500表⽰失败 */{"data": {"id": 503,"username": "admin3","role_id": 0,"mobile": "111","email": "123@"},"meta": {"msg": "更新成功","status": 200}}1.3.6. 删除单个⽤户请求路径:users/:id请求⽅法:delete请求参数参数名参数说明备注id⽤户 id不能为空参数是url参数:id响应参数响应数据{"data": null,"meta": {"msg": "删除成功","status": 200}}1.3.7. 分配⽤户⾓⾊请求路径:users/:id/role请求⽅法:put请求参数参数名参数说明备注id⽤户 ID不能为空参数是url参数:idrid⾓⾊ id不能为空参数body参数响应参数参数名参数说明备注id⽤户 IDrole_id⾓⾊ IDmobile⼿机号email邮箱响应数据{"data": {"id": 508,"rid": "30","username": "asdf1","mobile": "123123","email": "adfsa@"},"meta": {"msg": "设置⾓⾊成功","status": 200}}1.4. 权限管理1.4.1. 所有权限列表请求路径:rights/:type请求⽅法:get参数名参数说明备注type类型值 list 或 tree , list 列表显⽰权限, tree 树状显⽰权限,参数是url参数:type 响应参数参数名参数说明备注id权限 IDauthName权限说明level权限层级pid权限⽗ IDpath对应访问路径响应数据 type=list{"data": [{"id": 101,"authName": "商品管理","level": "0","pid": 0,"path": null},{"id": 102,"authName": "订单管理","level": "0","pid": 0,"path": null}],"meta": {"msg": "获取权限列表成功","status": 200}}type=tree{data: [{id: 101,authName: '商品管理',path: null,pid: 0,children: [{id: 104,authName: '商品列表',path: null,pid: 101,children: [{id: 105,authName: '添加商品',path: null,pid: '104,101'}]}]}],meta: {msg: '获取权限列表成功',status: 200}}1.4.2. 左侧菜单权限请求路径:menus请求⽅法:get响应数据{"data":{"id": 101,"authName": "商品管理","path": null,"children": [{"id": 104,"authName": "商品列表","path": null,"children": []}]}"meta": {"msg": "获取菜单列表成功","status": 200}}1.5. ⾓⾊管理1.5.1. ⾓⾊列表请求路径:roles请求⽅法:get响应数据说明第⼀层为⾓⾊信息第⼆层开始为权限说明,权限⼀共有 3 层权限最后⼀层权限,不包含 children 属性响应数据{"data": [{"id": 30,"roleName": "主管","roleDesc": "技术负责⼈","children": [{"id": 101,"authName": "商品管理","path": null,"children": ["id": 104,"authName": "商品列表","path": null,"children": [{"id": 105,"authName": "添加商品","path": null}]}]}]}],"meta": {"msg": "获取成功","status": 200}}1.5.2. 添加⾓⾊请求路径:roles请求⽅法:post请求参数参数名参数说明备注roleName⾓⾊名称不能为空roleDesc⾓⾊描述可以为空响应参数参数名参数说明备注roleId⾓⾊ IDroleName⾓⾊名称roleDesc⾓⾊描述响应数据{"data": {"roleId": 40,"roleName": "admin2","roleDesc": "admin2Desc"},"meta": {"msg": "创建成功","status": 201}}1.5.3. 根据 ID 查询⾓⾊请求路径:roles/:id请求⽅法:get请求参数参数名参数说明备注:id⾓⾊ ID不能为空携带在url中响应参数参数名参数说明备注roleId⾓⾊ IDroleName⾓⾊名称roleDesc⾓⾊描述响应数据{"data": {"roleId": 31,"roleName": "测试⾓⾊","roleDesc": "测试负责⼈"},"meta": {"msg": "获取成功","status": 200}}1.5.4. 编辑提交⾓⾊请求路径:roles/:id请求⽅法:put请求参数参数名参数说明备注:id⾓⾊ ID不能为空携带在url中roleName⾓⾊名称不能为空roleDesc⾓⾊描述可以为空响应数据{"data": {"roleId": 31,"roleName": "测试⾓⾊","roleDesc": "测试⾓⾊描述"},"meta": {"msg": "获取成功","status": 200}}1.5.5. 删除⾓⾊请求路径:roles/:id请求⽅法:delete请求参数响应数据{"data": null, "meta": {"msg": "删除成功", "status": 200 }}1.5.6. ⾓⾊授权请求路径:roles/:roleId/rights 请求⽅法:post请求参数:通过 请求体 发送给后端响应数据{"data": null, "meta": {"msg": "更新成功", "status": 200 }}1.5.7. 删除⾓⾊指定权限请求路径:roles/:roleId/rights/:rightId 请求⽅法:delete 请求参数响应数据说明返回的data, 是当前⾓⾊下最新的权限数据响应数据{"data": [ {"id": 101,"authName": "商品管理", "path": null, "children": [ {"id": 104,"authName": "商品列表", "path": null, "children": [ {"id": 105,"authName": "添加商品", "path": null }, {"id": 116,"authName": "修改", "path": null } ] } ] } ],"meta": {"msg": "取消权限成功", "status": 200 }}1.6. 商品分类管理1.6.1. 商品分类数据列表请求路径:categories 请求⽅法:get 请求参数响应参数响应数据{"data": [ {"cat_id": 1,"cat_name": "⼤家电", "cat_pid": 0, "cat_level": 0,"cat_deleted": false, "children": [ {"cat_id": 3,"cat_name": "电视",参数名参数说明备注:id⾓⾊ ID不能为空携带在url 中参数名参数说明备注:roleId ⾓⾊ ID不能为空携带在url 中rids权限 ID 列表(字符串)以 , 分割的权限 ID 列表(获取所有被选中、叶⼦节点的key 和半选中节点的key, 包括 1,2,3级节点)参数名参数说明备注:roleId ⾓⾊ ID 不能为空携带在url 中:rightId权限 ID不能为空携带在url 中参数名参数说明备注type [1,2,3]值:1,2,3 分别表⽰显⽰⼀层⼆层三层分类列表【可选参数】如果不传递,则默认获取所有级别的分类pagenum 当前页码值【可选参数】如果不传递,则默认获取所有分类pagesize每页显⽰多少条数据【可选参数】如果不传递,则默认获取所有分类参数名参数说明备注cat_id 分类 ID cat_name 分类名称cat_pid 分类⽗ ID cat_level分类当前层级"cat_pid": 1,"cat_level": 1,"cat_deleted": false,"children": [{"cat_id": 6,"cat_name": "曲⾯电视","cat_pid": 3,"cat_level": 2,"cat_deleted": false},{"cat_id": 7,"cat_name": "海信","cat_pid": 3,"cat_level": 2,"cat_deleted": false}]}]}],"meta": {"msg": "获取成功","status": 200}}1.6.2. 添加分类请求路径:categories请求⽅法:post请求参数参数名参数说明备注cat_pid分类⽗ ID不能为空,如果要添加1级分类,则⽗分类Id应该设置为 0 cat_name分类名称不能为空cat_level分类层级不能为空,0表⽰⼀级分类;1表⽰⼆级分类;2表⽰三级分类响应数据{"data": {"cat_id": 62,"cat_name": "相框","cat_pid": "1","cat_level": "1"},"meta": {"msg": "创建成功","status": 201}}1.6.3. 根据 id 查询分类请求路径:categories/:id请求⽅法:get请求参数参数名参数说明备注:id分类 ID不能为空携带在url中响应数据{"data": {"cat_id": 3,"cat_name": "厨卫电器","cat_pid": 0,"cat_level": 0},"meta": {"msg": "获取成功","status": 200}}1.6.4. 编辑提交分类请求路径:categories/:id请求⽅法:put请求参数参数名参数说明备注:id分类 ID不能为空携带在url中cat_name分类名称不能为空【此参数,放到请求体中】响应数据{"data": {"cat_id": 22,"cat_name": "⾃拍杆","cat_pid": 7,"cat_level": 2},"meta": {"msg": "更新成功","status": 200}}1.6.5. 删除分类请求路径:categories/:id请求⽅法:delete请求参数参数名参数说明备注:id分类 ID不能为空携带在url中响应数据{"data": null,"meta": {"msg": "删除成功","status": 200}}1.7. 分类参数管理1.7.1. 参数列表请求路径:categories/:id/attributes请求⽅法:get请求参数参数名参数说明备注:id分类 ID不能为空携带在url中sel[only,many]不能为空,通过 only 或 many 来获取分类静态参数还是动态参数响应参数参数名参数说明备注attr_id分类参数 IDattr_name分类参数名称cat_id分类参数所属分类attr_sel only:输⼊框(唯⼀) many:后台下拉列表/前台单选框attr_write manual:⼿⼯录⼊ list:从列表选择attr_vals如果 attr_write:list,那么有值,该值以逗号分隔响应数据{"data": [{"attr_id": 1,"attr_name": "cpu","cat_id": 22,"attr_sel": "only","attr_write": "manual","attr_vals": "ffff"}],"meta": {"msg": "获取成功","status": 200}}1.7.2. 添加动态参数或者静态属性请求路径:categories/:id/attributes请求⽅法:post请求参数参数名参数说明备注:id分类 ID不能为空携带在url中attr_name参数名称不能为空attr_sel[only,many]不能为空attr_vals如果是 many 就需要填写值的选项,以逗号分隔【可选参数】响应数据{"data": {"attr_id": 44,"attr_name": "测试参数","cat_id": "1","attr_sel": "many","attr_write": "list","attr_vals": "a,b,c"},"meta": {"msg": "创建成功","status": 201}}1.7.3. 删除参数请求路径: categories/:id/attributes/:attrid请求⽅法:delete请求参数参数名参数说明备注:id分类 ID不能为空携带在url中:attrid参数 ID不能为空携带在url中响应数据{"data": null,"meta": {"msg": "删除成功","status": 200}}1.7.4. 根据 ID 查询参数请求路径:categories/:id/attributes/:attrId请求⽅法:get请求参数参数名参数说明备注:id分类 ID不能为空携带在url中:attrId属性 ID不能为空携带在url中attr_sel[only,many]不能为空attr_vals如果是 many 就需要填写值的选项,以逗号分隔响应数据{"data": {"attr_name": "cpu","cat_id": 22,"attr_sel": "only","attr_write": "manual","attr_vals": "ffff"},"meta": {"msg": "获取成功","status": 200}}1.7.5. 编辑提交参数请求路径:categories/:id/attributes/:attrId请求⽅法:put请求参数参数名参数说明备注:id分类 ID不能为空携带在url中:attrId属性 ID不能为空携带在url中attr_name新属性的名字不能为空,携带在请求体中attr_sel属性的类型[many或only]不能为空,携带在请求体中attr_vals参数的属性值可选参数,携带在请求体中响应数据{"data": {"attr_id": 9,"attr_name": "测试更新","cat_id": "43","attr_sel": "only","attr_write": "manual","attr_vals": "abc"},"meta": {"msg": "更新成功","status": 200}}1.8. 商品管理1.8.1. 商品列表数据请求路径:goods请求⽅法:get请求参数参数名参数说明备注query查询参数可以为空pagenum当前页码不能为空pagesize每页显⽰条数不能为空响应参数参数名参数说明备注total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品响应数据{"data": {"total": 50,"pagenum": "1","goods": [{"goods_id": 144,"goods_name": "asfdsd","goods_price": 1,"goods_number": 1,"goods_weight": 1,"goods_state": null,"add_time": 1512954923,"upd_time": 1512954923,"hot_mumber": 0,"is_promote": false}]},"meta": {"msg": "获取成功","status": 200}}1.8.2. 添加商品请求路径:goods请求参数参数名参数说明备注goods_name商品名称不能为空goods_cat以为','分割的分类列表不能为空goods_price价格不能为空goods_number数量不能为空goods_weight重量不能为空goods_introduce介绍可以为空pics上传的图⽚临时路径(对象)可以为空attrs商品的参数(数组),包含动态参数和静态属性可以为空请求数据{"goods_name":"test_goods_name2","goods_cat": "1,2,3","goods_price":20,"goods_number":30,"goods_weight":40,"goods_introduce":"abc","pics":[{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}],"attrs":[{"attr_id":15,"attr_value":"ddd"},{"attr_id":15,"attr_value":"eee"}]}响应参数参数名参数说明备注total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_cat以为','分割的分类列表goods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图⽚临时路径(对象)pics_id:图⽚ ID,goods_id:商品 ID,pics_big:⼤图,pics_mid:中图,pics_sma:⼩图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:⼿动输⼊,还是单选,响应数据{"data": {"goods_id": 145,"goods_name": "test_goods_name2","goods_price": 20,"cat_id": 1,"goods_number": 30,"goods_weight": 40,"goods_introduce": "abc","goods_big_logo": "","goods_small_logo": "","goods_state": 1,"add_time": 1512962370,"upd_time": 1512962370,"hot_mumber": 0,"is_promote": false,"pics": [{"pics_id": 397,"goods_id": 145,"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8","pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8","pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"}],"attrs": [{"goods_id": 145,"attr_id": 15,"attr_value": "ddd","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""},{"goods_id": 145,"attr_id": 15,"attr_value": "eee","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""}]},"meta": {"msg": "创建商品成功","status": 201}}1.8.3. 根据 ID 查询商品请求路径:goods/:id请求⽅法:get请求参数参数名参数说明备注id商品 ID不能为空携带在url中响应参数参数名参数说明备注total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图⽚临时路径(对象)pics_id:图⽚ ID,goods_id:商品 ID,pics_big:⼤图,pics_mid:中图,pics_sma:⼩图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:⼿动输⼊,还是单选,响应数据{"data": {"goods_id": 145,"goods_name": "test_goods_name2","goods_price": 20,"goods_number": 30,"goods_weight": 40,"goods_introduce": "abc","goods_big_logo": "","goods_small_logo": "","goods_state": 1,"add_time": 1512962370,"upd_time": 1512962370,"hot_mumber": 0,"is_promote": false,"pics": [{"pics_id": 397,"goods_id": 145,"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8","pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8","pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"}],"attrs": [{"goods_id": 145,"attr_id": 15,"attr_value": "ddd","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""},{"goods_id": 145,"attr_id": 15,"attr_value": "eee","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""}]},"meta": {"msg": "创建商品成功","status": 201}}1.8.4. 编辑提交商品请求路径:goods/:id请求⽅法:put请求参数参数名参数说明备注id商品 ID不能为空携带在url中goods_name商品名称不能为空goods_price价格不能为空goods_number数量不能为空goods_weight重量不能为空goods_introduce介绍可以为空pics上传的图⽚临时路径(对象)可以为空attrs商品的参数(数组)可以为空请求数据{"goods_name":"test_goods_name2","goods_price":20,"goods_number":30,"goods_weight":40,"goods_introduce":"abc","pics":[{"pic":"/tmp_uploads/30f08d52c551ecb447277eae232304b8"}],"attrs":[{"attr_id":15,"attr_value":"ddd"},{"attr_id":15,"attr_value":"eee"}]}响应参数参数名参数说明备注total总共商品条数pagenum当前商品页数goods_id商品 IDgoods_name商品名称goods_price价格goods_number数量goods_weight重量不能为空goods_state商品状态商品状态 0: 未通过 1: 审核中 2: 已审核add_time添加时间upd_time更新时间hot_mumber热销品数量is_promote是否是热销品pics上传的图⽚临时路径(对象)pics_id:图⽚ ID,goods_id:商品 ID,pics_big:⼤图,pics_mid:中图,pics_sma:⼩图attrs商品的参数(数组)goods_id:商品 ID,attr_value:当前商品的参数值,add_price:浮动价格,attr_vals:预定义的参数值,attr_sel:⼿动输⼊,还是单选,响应数据{"data": {"goods_id": 145,"goods_name": "test_goods_name2","goods_price": 20,"goods_number": 30,"goods_weight": 40,"goods_introduce": "abc","goods_big_logo": "","goods_small_logo": "","goods_state": 1,"add_time": 1512962370,"upd_time": 1512962370,"hot_mumber": 0,"is_promote": false,"pics": [{"pics_id": 397,"goods_id": 145,"pics_big": "uploads/goodspics/big_30f08d52c551ecb447277eae232304b8","pics_mid": "uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8","pics_sma": "uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8"}],"attrs": [{"goods_id": 145,"attr_id": 15,"attr_value": "ddd","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""},{"goods_id": 145,"attr_id": 15,"attr_value": "eee","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""}]},"meta": {"msg": "创建商品成功","status": 201}}1.8.5. 删除商品请求路径:goods/:id请求⽅法:delete请求参数参数名参数说明备注id商品 ID不能为空携带在url中响应数据{"data": null,"meta": {"msg": "删除成功","status": 200}}###同步商品图⽚请求路径:goods/:id/pics请求⽅法:put请求参数参数名参数说明备注id商品 ID不能为空携带在url中pics商品图⽚集合如果有 pics_id 字段会保留该图⽚,如果没有 pics_id 但是有 pic 字段就会新⽣成图⽚数据请求数据;[{ pic: 'tmp_uploads/db28f6316835836e97653b5c75e418be.png' },{pics_id: 397,goods_id: 145,pics_big: 'uploads/goodspics/big_30f08d52c551ecb447277eae232304b8',pics_mid: 'uploads/goodspics/mid_30f08d52c551ecb447277eae232304b8',pics_sma: 'uploads/goodspics/sma_30f08d52c551ecb447277eae232304b8'}]响应数据{"data": {"goods_id": 96,"goods_name": "iphoneXX","goods_price": 2,"goods_number": 22,"goods_weight": 22,"goods_introduce": null,"goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg","goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg","goods_state": 0,"is_del": "1","add_time": 1510045904,"upd_time": 1512635159,"delete_time": 1512635159,"hot_mumber": 0,"is_promote": false,"pics": [{"pics_id": 383,"goods_id": 96,"pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg","pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg","pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg"}],"attrs": [{"goods_id": 96,"attr_id": 15,"attr_value": "eee","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""},{"goods_id": 96,"attr_id": 15,"attr_value": "ddd","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""}]},"meta": {"msg": "更新成功","status": 200}}###同步商品属性请求路径:goods/:id/attributes请求⽅法:put请求参数参数名参数说明备注id商品 ID不能为空携带在url中请求数据;[{attr_id: 15,attr_value: 'ddd'},{attr_id: 15,attr_value: 'eee'}]{"data": {"goods_id": 96,"goods_name": "iphoneXX","goods_price": 2,"goods_number": 22,"goods_weight": 22,"goods_introduce": null,"goods_big_logo": "./uploads/goods/20171113/483a3b8e99e534ec3e4312dbbaee7c9d.jpg","goods_small_logo": "./uploads/goods/20171113/small_483a3b8e99e534ec3e4312dbbaee7c9d.jpg","goods_state": 0,"is_del": "1","add_time": 1510045904,"upd_time": 1512635159,"delete_time": 1512635159,"hot_mumber": 0,"is_promote": false,"pics": [{"pics_id": 383,"goods_id": 96,"pics_big": "uploads/goodspics/big_6f5750132abd3f5b2b93dd722fcde653.jpg","pics_mid": "uploads/goodspics/mid_6f5750132abd3f5b2b93dd722fcde653.jpg","pics_sma": "uploads/goodspics/sma_6f5750132abd3f5b2b93dd722fcde653.jpg"}],"attrs": [{"goods_id": 96,"attr_id": 15,"attr_value": "eee","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""},{"goods_id": 96,"attr_id": 15,"attr_value": "ddd","add_price": null,"attr_name": "fffffff","attr_sel": "many","attr_write": "list","attr_vals": ""}]},"meta": {"msg": "更新成功","status": 200}}###商品图⽚处理必须安装 GraphicsMagicklinuxapt-get install GraphicsMagickMac OS Xbrew install GraphicsMagickWindows1.9. 图⽚上传请求路径:upload请求⽅法:post请求参数参数名参数说明备注file上传⽂件响应数据{"data": {"tmp_path": "tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png","url": "http://127.0.0.1:8888tmp_uploads/ccfc5179a914e94506bcbb7377e8985f.png"},"meta": {"msg": "上传成功","status": 200}}1.10. 订单管理1.10.1. 订单数据列表请求路径:orders请求⽅法:get请求参数参数名参数说明备注query查询参数可以为空pagenum当前页码不能为空pagesize每页显⽰条数不能为空user_id⽤户 ID可以为空pay_status⽀付状态可以为空is_send是否发货可以为空order_fapiao_title['个⼈','公司']可以为空order_fapiao_company公司名称可以为空order_fapiao_content发票内容可以为空consignee_addr发货地址可以为空响应数据{"data": {"total": 1,"pagenum": "1",。
API接口文档解决方案

参考文章: 用 spring Restdocs 创建 API 文档 /forezp/article/details/71023510 springboot 集成 swagger2,构建优雅的 Restful API /forezp/article/details/71023536 springboot 集成 apidoc /forezp/article/details/71023579
} String apidocCmd = isWindows() ? 'apidoc.cmd' : 'apidoc' task apidocs(type: Exec, description: '执行生成 apidoc 文档操作') {
workingDir './' def docCommand = [apidocCmd, '-o', './build/apidocs'] commandLine docCommand }
5.2.2 项目的根目录增加文件 apidoc.json
{ "name": "springboot-sample 接口文档", "version": "1.0.0", "description": "", "title": "springboot-sample", "url" : "https://"
5 后端开发本地环境配置
5.1 Apidoc 安装
首先需安装 nodejs,然后安装 apidoc(执行 npm install apidoc –g)
开发接口文档API文档模板

版本控制信息版本日期描述作者2018-8-13创立XXX获得全部字段获得全部字段央求地址:/session/field/findAll央求参数参数名必填字段种类描述name是String依据名称挑选响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":{"types":null,"villages":null,"companys":[{"iconCo lour":"","iconSize":0,"iconStyle":"","id":4,"name":"XX"},{"iconColour":"","iconSize":0,"iconStyle":"","id":5 ,"name":"XX"},{"iconColour":"","iconSize":0,"iconStyle":"","id":7,"name":"XX"}]},"totals":0}文件上传文件上传(ajax)央求地址:/session/file/upload央求参数参数名必填字段种类描述file是F ormData FormData对象包括的文件响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:varformData=newFormData();("file",[0]);$.ajax({url:routePath+"/session/file/upload",type:'POST',data:formData,processData:false,contentType:false,success:function(result){result=(result);if=="10000"){('上传成功!');$("#editHeadPortrait").val} }});响应例子:returnValue里包括了fileName和filePath字段管理-所属种类新增所属种类央求地址:/session/fieldType/save央求参数参数名必填字段种类描述name是String所属种类名称响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}更正所属种类央求地址:/session/fieldType/update央求参数参数名必填字段种类描述id是Long所属种类idname是String所属种类名称响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:&name=test响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}依据id获得所属种类央求地址:/session/fieldType/getById央求参数参数名必填字段种类描述id是L ong所属种类id响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":{"id":2,"name":"re"},"totals":0}获得所属种类列表央求地址:/session/fieldType/selectAll央求参数参数名必填字段种类描述name否String依据种类名称挑选响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":[{"id":1,"name":"123"},{"id":6,"name":"145555"}]," totals":2}删除所属种类(批量)央求地址:/session/fieldType/deleteByIds央求参数参数名必填字段种类描述ids是List所属种类id会集响应code10000成功,-1系统错误,10001必填参数为空message响应描述result如响应例子央求例子:响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统办理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}。
开发接口文档-API文档模板

XXX项目接口文档版本控制信息1获取所有字段1.1获取所有字段请求地址:/session/field/findAll响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":{"types":null,"villages":null,"companys":[{"iconColour":"", "iconSize":0,"iconStyle":"","id":4,"name":"XX"},{"iconColour":"","iconSize":0,"iconStyle":"","id":5,"name":"XX"},{"icon Colour":"","iconSize":0,"iconStyle":"","id":7,"name":"XX"}]},"totals":0}2文件上传2.1文件上传(ajax)请求地址:/session/file/uploadformData.append("file", this.files[0]);$.ajax({url : routePath + "/session/file/upload",type : 'POST',data : formData,processData : false,contentType : false,success : function(result) {result = JSON.parse(result);if(result.code == "10000"){layer.msg('上传成功!');$("#editHeadPortrait").val(result.returnValue.filePath);}}});响应例子:returnValue里包含了 fileName和filePath3字段管理-所属类型3.1新增所属类型请求地址:/session/fieldType/save响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}3.2修改所属类型请求地址:/session/fieldType/update响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}3.3根据id获取所属类型请求地址:/session/fieldType/getById响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":{"id":2,"name":"re"},"totals":0}3.4获取所属类型列表请求地址:/session/fieldType/selectAll响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnObject":null,"returnValue":[{"id":1,"name":"123"},{"id":6,"name":"145555"}],"totals": 2}3.5删除所属类型(批量)请求地址:/session/fieldType/deleteByIds响应例子:{"code":"10000","exception":null,"isSuccess":true,"message":"成功,系统处理正常!","page":0,"pageSize":0,"returnListSize":0,"returnObject":null,"returnValue":null,"totals":0}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。
API:应用程序接口(API:Application Program Interface)
应用程序接口(是一组定义、程序及协议的集合,通过API 接口实现计算机软件之间的相互通信。
API 的一个主要功能是提供通用功能集。
程序员通过调用API 函数对应用程序进行开发,可以减轻编程任务。
API 同时也是一种中间件,为各种不同平台提供数据共享。
根据单个或分布式平台上不同软件应用程序间的数据共享性能,可以将API 分为四种类型:
远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务)实现程序间的通信。
标准查询语言(SQL):是标准的访问数据的查询语言,通过数据库实现应用程序间的数据共享。
文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。
信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。
当前应用于API 的标准包括ANSI 标准SQL API。
另外还有一些应用于其它类型的标准尚在制定之中。
API 可以应用于所有计算机平台和操作系统。
这些API 以不同的格式连接数据(如共享数据缓存器、数据库结构、文件框架)。
每种数据格式要求以不同的数据命令和参数实现正确的数据通信,但同时也会产生不同类型的错误。
因此,除了具备执行数据共享任务所需的知识以外,这些类型的API 还必须解决很多网络参数问题和可能的差错条件,即每个应用程序都必须清楚自身是否有强大的性能支持程序间通信。
相反由于这种API 只处理一种信息格式,所以该情形下的信息交付API 只提供较小的命令、网络参数以及差错条件子集。
正因为如此,交付API 方式大大降低了系统复杂性,所以当应用程序需要通过多个平台实现数据共享时,采用信息交付API 类型是比较理想的选择。
API 与图形用户接口(GUI)或命令接口有着鲜明的差别:API 接口属于一种操作系统或程序接口,而后两者都属于直接用户接口。
有时公司会将API 作为其公共开放系统。
也就是说,公司制定自己的系统接口标准,当需要执行系统整合、自定义和程序应用等操作时,公司所有成员都可以通过该接口标准调用源代码,该接口标准被称之为开放式API。
windowsAPI
Windows API是一套用来控制Windows的各个部件(从桌面的外观到为一个新进程分配的内存)的外观和行为的一套预先定义的Windows函数.用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么. 这在某种程度上很象Windows的天然代码.其他的语言只是提供一种能自动而且更容易的访问API的方法.VB在这方面作了很多工作.它完全隐藏了API并且提供了在Windows环境下编程的一种完全不同的方法. 这也就是说,你用VB 写出的每行代码都会被VB转换为API函数传递给Windows.例如,Form1.Print...VB 将会以一定的参数(你的代码中提供的,或是默认参数)调用TextOut 这个API函数。
同样,当你点击窗体上的一个按钮时,Windows会发送一个消息给窗体(这对于你来说是隐藏的),VB获取这个调用并经过分析后生成一个特定事件(Button_Click). API函数包含在Windows系统目录下的动态连接库文件中(如User32.dll,GDI32.dll,Shell32.dll...). 更易理解地说:Windows 这个多作业系统除了协调应用程式的执行、分配内存、管理系统资源…之外,她同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备…等目的,由於这些函数服务的对象是应用程式(Application),所以便称之为Application Programming Interface,简称API 函数。
WIN32 API也就是Microsoft Windows
32位平台的应用程序编程接口。
凡是在Windows 工作环境底下执行的应用程式,都可以调用Windows API。
API的历史与现状当WINDOWS操作系统开始占据主导地位的时候,开发WINDOWS 平台下的应用程序成为人们的需要。
而在WINDOWS程序设计领域处于发展的初期,WINDOWS程序员所能使用的编程工具唯有API 函数,这些函数是WINDOWS提供给应用程序与操作系统的接口,他们犹如“积木块”一样,可以搭建出各种界面丰富,功能灵活的应用程序。
所以可以认为API函数是构筑整个WINDOWS框架的基石,在它的下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序。
但是,没有合适的Windows编程平台,程序员想编写具有Windows风格的软件,必须借助API,API 也因此被赋予至高无上的地位。
那时的WINDOWS程序开发还是比较复杂的工作,程序员必须熟记一大堆常用的API函数,而且还得对WINDOWS操作系统有深入的了解。
然而随着软件技术的不断发展,在WINDOWS平台上出现了很多优秀的可视化编程环境,程序员可以采用“即见即所得”的编程方式来开发具有精美用户界面和功能强大的应用程序。
这些优秀可视化编程环境操作简单、界面友好(诸如VB、VC++、DELPHI等),在这些工具中提供了大量的类库和各种控件,它们替代了API的神秘功能,事实上这些类库和控件都是构架在WIN32 API函数基础之上的,是封装了的API函数的集合。
它们把常用的API函数的组合在一起成为一个控件或类库,并赋予其方便的使用方法,所以极大的加速了WINDOWS应用程序开发的过程。
有了这些控件和类库,程序员便可以把主要精力放在程序整体功能的设计上,而不必过于关注技术细节。
实际上如果我们要开发出更灵活、更实用、更具效率的应用程序,必然要涉及到直接使用API函数,虽然类库和控件使应用程序的开发简单的多,但它们只提供WINDOWS的一般功能,对于比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现。
API声明
正如在"什么是API"中所说,API函数包含在位于系统目录下的DLL文件中.你可以自己输入API函数的声明,但VB提供了一种更简单的方法,即使用API Text Viewer. 要想在你的工程中声明API函数,只需运行API Text Viewer,打开Win32api.txt(或.MDB如果你已经把它转换成了数据库的话,这样可以加快速度. 使用预定义的常量和类型也是同样的方法. API除了有应用“应用程序接口”的意思外,还特指API的说明文档,也称为帮助文档。
你将会遇到一些问题假设你想在你的窗体模块中声明一个函数.粘贴然后运行,VB会告诉你:编译错误...Declare 语句不允许作为类或对象模块中的Public 成员...看起来很糟糕,其实你需要做的只是在声明前面添加一个Private(如Private Declare Function...).--不要忘了,可是这将使该函数只在该窗体模块可用. 在有些情况下,你会得到"不明确的名称"这样的提示,这是因为函数.常量或其他的什么东西共用了一个名称.由于绝大多数的函数(也可能是全部,我没有验证过)都进行了别名化,
亦即意味着你可以通过Alias子句使用其它的而不是他们原有的名称,你只需简单地改变一下函数名称而它仍然可以正常运行.。