Skip to content

Api模块

Api模块用于定义请求后台Api请求接口,这些接口需要跟服务端的rest接口定义一致。

dino-vie3-core lib主要定义了dino-spring中内置的一些接口。

在使用网络请求前,需要先对配置Api

useApi

通过useApi可以直接使用ApiService进行网络请求

  • Types
ts
/**
 * 获取服务Api
 * @param service 服务名称
 * @returns ApiService
 * @throws Error 如果服务未配置,则抛出错误
 */
export const useApi = (service?: string): ApiService

/**
 * Api请求函数类型
 */
export interface HttpRequest {
  <T = any, R = HttpResponse<T>, D = any>(config: RequestConfig<D>): Promise<R>
  <T = any, R = HttpResponse<T>, D = any>(url: string, config?: RequestConfig<D>): Promise<R>
}
/**
 * 获取服务Api
 * @param service 服务名称
 * @returns ApiService
 * @throws Error 如果服务未配置,则抛出错误
 */
export const useApi = (service?: string): ApiService

/**
 * Api请求函数类型
 */
export interface HttpRequest {
  <T = any, R = HttpResponse<T>, D = any>(config: RequestConfig<D>): Promise<R>
  <T = any, R = HttpResponse<T>, D = any>(url: string, config?: RequestConfig<D>): Promise<R>
}
  • Details

RequestConfig

请求接口的配置类型

nametypeoptionaldefaultdescription
urlstringfalsen/a请求的 URL
methodstringfalsen/a请求的方法
baseUrlstringtruen/a请求的基础 URL
headersHttpHeaderTypetruen/a请求的头部信息
paramsanytruen/a请求的参数
dataDtruen/a请求的数据
timeoutnumbertruen/a请求的超时时间
withCredentialsbooleantruen/a是否携带凭证
authBasicCredentialstruen/a基本认证凭证
withTokenbooleantrueundifined是否需要身份验证令牌: undifined or true: 需要false: 不需要
responseTypeResponseTypetruen/a响应的数据类型
responseEncodingstringtruen/a响应的编码方式
socketPathstringtruen/aSocket 路径
transportanytruen/a传输方式
proxyfalse or ProxyConfigtruen/a代理配置
onUploadProgress(progressEvent: RequestProgressEvent) => voidtruen/a上传进度回调函数
onDownloadProgress(progressEvent: RequestProgressEvent) => voidtruen/a下载进度回调函数

HttpResponse

HTTP响应接口

nametypeoptionaldefaultdescription
dataRESP_Tfalsen/a响应数据
statusnumberfalsen/a响应状态码
statusTextstringfalsen/a响应状态文本
headersHttpHeaderTypefalsen/a响应头部信息
  • Example
ts
import { useApi } from '@dino-dev/vue3-core'

const api = useApi('core')

api.request({url: '/user/info'})
import { useApi } from '@dino-dev/vue3-core'

const api = useApi('core')

api.request({url: '/user/info'})

Released under the Apache-2.0 License.