api接口在线文档(api接口在线文档怎么打开)

网友投稿 558 2023-01-02

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

本文目录一览:

API接口入门(一):读懂API接口文档

本文目录:

API接口是什么?

为什么我们需要API接口?

API接口的核心

一、API接口是什么?

我们来以一个常见的数学公式理解API,比如y=x+2,当x=2的时候,y=4,对么?

那此时,我们把y=x+2称为接口,x=2称为参数,y=4称为返回结果,那这个接口的功能就是能把我们输入的数加上2(注意:这里你可以发现接口自身是带有逻辑的)。

类比地,我们来理解一个常见的场景,比如现在有一个可以把经纬度转化为城市的接口,那当我输入经度是55°,纬度是88°的时候,接口通过自己的逻辑运算,返回结果告诉我:杭州市。

这样你就可以清晰地了解百度百科的官方解释了,接口就是预先定义的函数逻辑,他是供其他系统请求,然后返回结果的一个东西。

二、为什么我们需要API接口?

背景:我们的业务系统涉及多方多面,如果要一个公司或者一个系统把所有业务都做完,那未免工作量太大了吧?并且如果其他系统或公司有更好的运算逻辑,那我们在设计功能的时候可以考虑利用接口进行开发。

核心需求:利用现有接口可以降低开发成本,缩短开发成本。

举个例子:比如我是打车的APP,现在我需要在我的页面上展现地图的功能,对于我司而言,新做地图功能未免成本过高,那我们可以在高德开放平台或者百度地图的开放平台,找到地图API,这样的话我们只需要购买高德的服务,部署调用高德地图API,这样就可以快速在我们页面上线地图功能了。

三、API接口的核心

对于小白而言,初看API文档可能是一头雾水的——从哪里看,怎么看,看什么是摆在面前的问题。

其实对于产品经理而言,我们应该更关注这个公司可以提供什么样的API接口服务,比如我知道高德可以提供地图API,规划路线的API,这样的话在我们设计功能和工作中就可以想到调用他们的服务或者参考。

所以产品小白们看不懂也不用过于担心,未来工作中你也会更深入了解清楚,因为看懂并不复杂,以下是API接口的核心点,所有的说明文档离不开这5个核心点。

以下说明均以微信开放平台为例说明,文末有各开放平台的地址,大家有空可以去学习。好了,事不宜迟,现在我们来建立一个场景。

我们现在有一个APP,需要用户在购买的时候调起微信支付的API,完成购买。请各位自动进入这个场景,把自己当作一位产品经理。

1. 接口地址

现在Now,用户点击付款,我们需要告诉微信,我们要调起你们的收银台啦!但,去哪里告诉呢?这就需要接口地址了,也就相当于向微信的这条链接传输指定的数据。

一个链接地址不是我们理解的一个页面,你可以理解是一个电话号码,小白们要改变这个观念。

此时我们可以看到接口文档告诉我们链接是如下这条,那我们现在已经拨通微信的电话了。

2. 请求参数(报文)

我们现在需要告诉微信,你想调用收银台对吧。那我们需要写下来,此时生成的叫做报文,也就是你想告诉这个接口的内容是什么?相当于前文函数的输入x=2。

一般来说,报文的格式和内容都是按接口文档规定的。如下文就是微信开放平台对调起收银台的报文要求。

我们先来看前2个参数,你现在跟微信在对话,是不是应该先告诉微信,你是谁?这里微信的文档告诉你应该要用应用ID+商户号来确定你的身份,什么意思呢?

比如你是A商户,下面有a,b,c三个APP,所以微信要知道你是哪个商家,下面的哪个APP要用收银台。这是非常重要的,微信后面要把收到的钱打到对应的账户以及统计数据等。

那我们就在报文里面写下这两句话:

<appidwx2421b1c4370ec43b</appid(我的应用ID是wx2421…….)

<mch_id10000100</mch_id(我的商户号是10000…….)

好了,现在微信知道你是谁了,那你要告诉微信,你需要微信支付帮你收多少钱对吧?这里定义了货币类型和总金额,也就是收什么货币,收多少钱。

这里你看,货币类型的必填写了否,也就是说你也可以不告诉微信支付货币类型是什么,因为他在后面备注了默认是人民币。

好的,那我们写下两段报文

<free_typeCNY</ free_type (我要收人民币)

<total_fee1</total_fee(我要收1元)

好了,现在微信知道你是谁,也知道要收多少钱了,那接下来微信支付要把收钱结果告诉你呀,因为你得知道用户是成功支付了才能继续发货,服务啊等等的。所以这里我们用到通知地址,就是告诉微信,等下完事了他去哪里告诉你支付结果。那我们把地址写好:

<notify_urlhttp://wxpay.wxutil.com/pub_v2/pay/notify.v2.php</notify_url

3. 返回结果

刚刚微信支付已经去收款了,现在他要在我们留下的通知地址中,告诉我们结果了。结果无非是两种:成功收款?收款不成功?

(1)成功

很顺利,现在用户成功付钱了,并且微信也把成功的消息告诉我们了,并且他还把用户支付的一些信息也告诉我们。

那这里就是微信支付成功收款后告诉我们的信息。

应用APPID,商户号:告诉你我成功扣款的是哪家商户的哪个APPID的交易。

业务结果:成功或失败

(2)失败

在产品设计的时候,我们往往很关注失败的情况,当收款失败的时候,微信同时会告诉你失败的原因,如下图很好理解,失败的原因有很多很多种,我们在设计的时候往往要分析每种失败的原因,为每个失败的原因设计页面和用户提示,以确保用户能理解。

以上就是API接口基本运作模式的理解,下面我将继续更新API接口的一些更为深入和细节的关键元素,如请求方式/签名/加解密等等。

可供参考的开放平台网站

微信支付:https://pay.weixin.qq.com/wiki/doc/api/index.html

高德平台开放平台:https://lbs.amap.com/

YApi~API接口文档

YApi

地址链接: https://yapi.baidu.com/

文档链接: https://yapi.baidu.com/doc/documents/index.html

安装过程就不做复述了,文档写的非常全

在一个项目的开发过程之中,我相信基本上所有的开发人员都需要用到接口模拟请求的工具,例如POSTMAN啊

java的注解生成文档工具swagger啊

但是在实际开发过程中,前后端人员可能需要提前确定文档地址以及格式、参数等信息,

postman作为一个模拟请求的工具起不到记录功能

swagger只能通过注解、实体类、参数等信息生成文档,无法提前记录

这个时候就要提到Yapi中的运行这个功能了,只要安装一个chrome插件,马上实现在线调试功能

同时可以在设置中去配置一下环境设置,这样在开发过程中可以通过切换环境访问不同后端开发人员的本地开发环境,方便多人多模块同时调试

赤狐博客地址: https://blog.51chihu.com

如何优雅的“编写”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,支持团队项目管理。

如何使 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 文档展示效果 关于api接口在线文档和api接口在线文档怎么打开的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 api接口在线文档的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于api接口在线文档怎么打开、api接口在线文档的信息别忘了在本站进行查找喔。

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

上一篇:最好项目管理软件下载(项目管理工具软件)
下一篇:okr软件工具怎么选(OKR管理工具)
相关文章