Vue type:script 을 사용 하여 swagger API 를 우아 하 게 호출 하 는 방법

Swagger 는 규범 적 이 고 완전한 프레임 워 크 로 RESTful 스타일 의 웹 서 비 스 를 생 성,설명,호출,시각 화 하 는 데 사용 되 며 백 엔 드 에 Swagger 를 통합 한 다음 에 온라인 문서 주 소 를 전단 학생 에 게 제공 할 수 있 습 니 다.

전단 은 어떻게 우아 하 게 호출 합 니까?
입문 판
문서 에 따라 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
제시 에 따르다
  • swagger-ui 주 소 를 입력 하 십시오.예 를 들 어http://192.168.86.8:8051/swagger-ui.html
  • js 또는 typescript 생 성
  • 생 성 된 api class 이름,api 파일 이름
  • 을 사용자 정의 할 수 있 습 니 다.
  • API 지원 범 형
  • 명령 행 을 통 해 파 라 메 터 를 직접 전달 할 수도 있 습 니 다.
    
    yo swagger-2-ts --swaggerUrl=http://localhost:8080/swagger-ui.html --className=API --type=typescript --outputFile=api.ts
  • swaggerUrl:swagger ui url swaggerui 주소
  • className:API class name 클래스 이름
  • type: typescript or javascipt
  • outputFile:api 파일 저장 경로
  • 코드 데모 생 성:
    
    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 을 사용 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기