# OpenAPI
# 1、概述
OpenAPI 规范 ,是⼀个定义 标准的、与具体编程语⾔⽆关的 RESTful API的规范。 ⼀个良好定义的 API 可以使得使⽤者⾮常轻松地理解并与之交互⽽不需要了解它的实现逻辑。
该模块用于管理当前系统OpenAPI接口,关于提供方和调用方使用下面分别介绍
# 2、提供方使用
该模块使用包含操作界面以及后端两部分功能。 本章节主要讲关于后端使用部分, 操作界面请见OpenAPI。
后端主要通过注解@OpenApi
完成:
- 注解功能
该注解的主要功能为记录接口的调用日志以及完成接口的鉴权。
- 注解属性
属性名 | 属性说明 |
---|---|
code | 接口编码,对应 API管理中维护的编码 |
使用位置:方法
使用说明
首先在API管理中注册目标接口信息
将
@OpenApi
添加到对应的方法上(注意:只能为Controller层方法) 例如:
@RestController
@RequestMapping("${sys.restfulPath}/org")
public class OrgReceiveController {
@PostMapping("/apitest")
@OpenApi(code = "apitest")
public BaseResponse receive(@RequestBody String str) {
return BaseResponse.success("调用成功");
}
}
其中@OpenApi
注解中使用的属性code,为第一步中注册的编码
提示
OpenApi中管理的接口为对外开放的接口,需要使用免登陆认证的地址,对应配置项为
sys.restfulPath
。例如,该配置项值为/openApi
,则该接口地址
需要为/openApi起头的地址,如/openApi/org/apitest ,
建议对外提供openApi接口的 controller 所在包的名称以 openapi 命名。
# 3.调用方使用
根据接口的鉴权方式,接口的调用有所不同
# 3.1.无鉴权接口
无鉴权方式开放接口,可直接调用
# 3.2.鉴权接口
- 1、获取接口通行码
需要提供方提供AppId、AppSecret,位置如图所示:
携带AppId,AppSecret,调用接口/api/openApi/openapibase/apisystem/getAcessToken
(
其中/api
对应yml中配置项server.servlet.context-path
,/openApi
对应yml中配置项sys.restfulPath
),获取接口通行码,
如下图所示
- 2、携带接口通行码调用接口
将获取到的接口通行码放入请求头参数apiAccessToken中,调用具体接口,如图所示