1.0.45 • Published 9 months ago
moyan-api v1.0.45
moyan-api
描述
用于生成OAS3 的调用api
安装
npm i moyan-api -S
pageage配置
#pageage.json
{
"moyan-api":{
"output":"src", // 生成的文件输出目录,默认值:src
"apijson":"moyan.api.json" ,// 生成sdk 的openApi 3.0 数据 ,默认值:moyan.api.json
"jsonurl":"远程获取数据的地址",
"apiprefix":"Api",
}
}
使用
- 调用命令前,必须保证你的项目根目录里面存在moyan.api.json(openApi 3.0格式的数据)或者在ageage.json中配置
{
"moyan-api":{
"jsonurl":"远程获取数据的地址"
}
}
cd 你的项目根目录
moyan-api
调用命令后会在我们的src/api 生成index.ts、schemas.ts两个文件,其中index.ts中的class就是我们的api调用类了。
调用
- 在我们开始调用api之前,我们需要对我们的 ApiCall 类做一些配置处理。
- 我们可以在我们的src/lib/api下创建一个config.ts (具体文件名、路径可根据自己的喜好创建修改)。
import { ElMessage } from 'element-plus'
import { getConfig } from '../../config'
import axios, { AxiosInstance, AxiosRequestConfig } from 'axios'
import { ApiCall, ApiEntity } from 'moyan-api'
const AXIOS = Symbol('mo#Api#axios')
export class MoAxios {
static [AXIOS]: AxiosInstance
options: any = {}
constructor(options: any = {}) {
this.options = options
}
get $axios() {
if (!MoAxios[AXIOS]) {
MoAxios[AXIOS] = axios.create(this.config.axios)
this.init()
}
return MoAxios[AXIOS]
}
get config() {
return getConfig()
}
init() {
this.$axios.interceptors.response.use(
(res) => {
if (typeof this.options.render === 'function') {
return this.options.render(res)
} else {
return res
}
},
async (error) => {
// Do something with response error
if (error && error.response) {
switch (error.response.status) {
case 502:
error.message = '网关错误'
break
case 504:
error.message = '网关超时'
break
case 505:
error.message = '版本不受支持'
break
default:
error.message = error.response.data.message
break
}
}
throw error
}
)
}
request(apiEntity: ApiEntity) {
const url = `${apiEntity.path}`
const requsetOption: AxiosRequestConfig = {
responseType: 'json',
baseURL: this.config.moApi.baseURL,
url,
method: apiEntity.method,
headers: {}
}
if (apiEntity.method === 'GET') {
requsetOption.params = { params: apiEntity.params }
} else {
requsetOption.data = apiEntity.params
}
return this.$axios(requsetOption)
}
}
ApiCall.hintSuccessHandler = (apiCall) => {
console.info('请求成功!!')
ApiCall.hasPrompted = true
ElMessage.success({
message: apiCall.successMsg,
onClose: () => {
ApiCall.hasPrompted = false
}
})
}
ApiCall.hintFailHandler = (apiCall) => {
console.info('请求错误!!')
ApiCall.hasPrompted = true
apiCall.failMsg &&
ElMessage.error({
message: apiCall.failMsg,
onClose: () => {
ApiCall.hasPrompted = false
}
})
}
ApiCall.use(new MoAxios())
- 现在我们就可以在我们的项目中调用api了
new ApiGetUser({params:{id:1}}).then((res)=>{
...
})
Gitee
1.0.39
9 months ago
1.0.38
9 months ago
1.0.40
9 months ago
1.0.44
9 months ago
1.0.43
9 months ago
1.0.42
9 months ago
1.0.41
9 months ago
1.0.45
9 months ago
1.0.37
9 months ago
1.0.35
11 months ago
1.0.33
2 years ago
1.0.32
2 years ago
1.0.19
2 years ago
1.0.18
2 years ago
1.0.17
2 years ago
1.0.16
2 years ago
1.0.22
2 years ago
1.0.21
2 years ago
1.0.20
2 years ago
1.0.26
2 years ago
1.0.25
2 years ago
1.0.23
2 years ago
1.0.29
2 years ago
1.0.28
2 years ago
1.0.27
2 years ago
1.0.11
2 years ago
1.0.10
2 years ago
1.0.31
2 years ago
1.0.30
2 years ago
1.0.15
2 years ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.12
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.6
2 years ago
1.0.5
2 years ago
1.0.4
2 years ago
1.0.3
2 years ago
1.0.2
2 years ago
1.0.1
2 years ago