Vue type:script 을 사용 하여 swagger API 를 우아 하 게 호출 하 는 방법
5444 단어 VuetypescriptswaggerAPI
전단 은 어떻게 우아 하 게 호출 합 니까?
입문 판
문서 에 따라 axios 로 자동 으로 호출 합 니 다.
//
import axios from '../interceptors.js'
//
export const getList = (data) => {
return axios({
url: '/app/list?sort=createdDate,desc',
method: 'get',
params: data
})
}
문 제 는 인터페이스 가 몇 개 있 는 지,함수 가 몇 개 있 는 지,데이터 구 조 는 문 서 를 보고 가 져 와 야 한 다 는 것 이다.진급 버 전
typescript 을 사용 하여 API 를 작성 하고 Type 을 통 해 데이터 구 조 를 정의 하여 제약 합 니 다.
질문:역시 손 글씨 가 필요 합 니 다.
우아 한 버 전
swagger 는 json-schema 설명 문서 입 니 다.이 를 바탕 으로 자동 으로 생 성 할 수 있 습 니 다.
이전에 플러그 인generator-swagger-2-t을 썼 는데 swagger 를 typescript api 로 만 드 는 것 을 간단하게 실현 했다.
오늘 필 자 는 이것 에 대해 업 그 레이 드 를 하여 백 엔 드 가 돌아 오 는 일반적인 데이터 구 조 를 편리 하 게 지원 했다.
설치 하 다.
동시에 설치Yeoman와-swagger-2-ts 가 필요 합 니 다.
npm install -g generator-swagger-2-ts
그리고 cd 는 작업 디 렉 터 리 로 이동 합 니 다.실행:
yo swagger-2-ts
제시 에 따르다
yo swagger-2-ts --swaggerUrl=http://localhost:8080/swagger-ui.html --className=API --type=typescript --outputFile=api.ts
export type AccountUserInfo = {
disableTime?: string
isDisable?: number
lastLoginIp?: string
lastLoginPlace?: string
lastLoginTime?: string
openId?: string
}
export type BasePayloadResponse = {
data?: object
desc?: string
retcode?: string
}
/**
* User Account Controller
* @class UserAccountAPI
*/
export class UserAccountAPI {
/**
* changeUserState
* @method
* @name UserAccountAPI#changeUserState
* @param accountUserInfo - accountUserInfo
* @param $domain API ,
*/
changeUserState(parameters: {
'accountUserInfo': AccountUserInfo,
$queryParameters?: any,
$domain?: string
}): Promise<AxiosResponse<BasePayloadResponse>> {
let config: AxiosRequestConfig = {
baseURL: parameters.$domain || this.$defaultDomain,
url: '/userAccount/changeUserState',
method: 'PUT'
}
config.headers = {}
config.params = {}
config.headers[ 'Accept' ] = '*/*'
config.headers[ 'Content-Type' ] = 'application/json'
config.data = parameters.accountUserInfo
return axios.request(config)
}
_UserAccountAPI: UserAccountAPI = null;
/**
* User Account Controller API
* return @class UserAccountAPI
*/
getUserAccountAPI(): UserAccountAPI {
if (!this._UserAccountAPI) {
this._UserAccountAPI = new UserAccountAPI(this.$defaultDomain)
}
return this._UserAccountAPI
}
}
/**
*
* @class API
*/
export class API {
/**
* API
* @param domain API
*/
constructor(domain?: string) {
this.$defaultDomain = domain || 'http://localhost:8080'
}
}
쓰다
import { API } from './http/api/manageApi'
// in main.ts
let api = new API("/api/")
api.getUserAccountAPI().changeUserState({
isDisable: 1
openId: 'open id'
})
Vue 최고의 실천main.ts 전역 정의
import { API } from './http/api/manageApi'
Vue.prototype.$manageApi = new API('/api/')
d.d.ts 추가types 파일 을 추가 하여 스마트 알림 을 편리 하 게 사용 합 니 다.
import { API } from '@/http/api/manageApi'
import { MarkAPI } from '@/http/api/mark-center-api'
declare module "vue/types/vue" {
interface Vue {
$manageApi: API
$markApi: MarkAPI
}
}
실제 사용이제 vue 에서 직접 호출 할 수 있 습 니 다.
this.$manageApi
.getUserAccountAPI().changeUserState({isDisable: 1, openId: 'open id'})
오픈 소스 주소https://github.com/jadepeng/generator-swagger-2-ts
총결산
Vue 가 typescript 을 사용 하여 swagger API 를 우아 하 게 호출 하 는 방법 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Vue 가 typescript 을 사용 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.