日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue 使用typescript如何優雅的調用swagger API

瀏覽:211日期:2022-12-01 13:53:27

Swagger 是一個規范和完整的框架,用于生成、描述、調用和可視化 RESTful 風格的 Web 服務,后端集成下Swagger,然后就可以提供一個在線文檔地址給前端同學。

Vue 使用typescript如何優雅的調用swagger API

前端如何優雅的調用呢?

入門版

根據文檔,用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 文件保存路徑

生成代碼demo:

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.tslet 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.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里直接調用了。

Vue 使用typescript如何優雅的調用swagger API

this.$manageApi .getUserAccountAPI().changeUserState({isDisable: 1, openId: ’open id’})

開源地址

https://github.com/jadepeng/generator-swagger-2-ts

總結

到此這篇關于Vue 使用typescript如何優雅的調用swagger API的文章就介紹到這了,更多相關Vue 使用typescript內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
电影91久久久| 国产精品xxx| 国产欧美三级| 中文字幕av一区二区三区人| 99热精品久久| 久久精品国产亚洲夜色av网站| 日韩国产激情| 国产一区二区三区四区| 欧美黄页在线免费观看| 涩涩av在线| 久久精品国产99久久| 欧美jjzz| 欧美日韩亚洲一区| 国内一区二区三区| 99久久www免费| 亚洲特色特黄| 日本国产亚洲| 欧美日韩国产高清| 免费亚洲婷婷| 久久国产日韩欧美精品| 国产调教一区二区三区| 99香蕉国产精品偷在线观看| 国产情侣久久| 国内不卡的一区二区三区中文字幕| 日韩不卡一区二区三区| 欧美精品国产白浆久久久久| 精品美女在线视频| 欧美成人久久| 日韩av中文字幕一区二区三区| 国产精品18| 亚洲精品1区| 丁香婷婷久久| 中文字幕日本一区二区| av高清不卡| 国产私拍福利精品视频二区| 三级小说欧洲区亚洲区| 日韩精品一区二区三区中文在线 | 亚洲精品看片| 亚洲乱亚洲高清| 理论片午夜视频在线观看| 中文字幕一区二区av| 高清不卡亚洲| 国产精品magnet| 亚洲免费毛片| 99pao成人国产永久免费视频 | 精品中文字幕一区二区三区四区| 在线视频免费在线观看一区二区| 久久三级中文| 久久成人精品| 首页国产精品| 国产精品毛片久久久| 丝袜美腿高跟呻吟高潮一区| 日韩伦理在线一区| 国产精品分类| 久久国产三级| 国产伦精品一区二区三区在线播放 | 日本精品不卡| 精品久久福利| 美女国产一区二区三区| 欧美日韩精品一区二区三区视频 | 国产成人免费精品| 久久久精品区| 日韩欧美中文在线观看| 亚洲精品自拍| 日韩精品亚洲专区在线观看| 综合精品一区| 亚洲ww精品| 三级一区在线视频先锋| 视频一区二区三区入口| 亚洲欧美日本国产| 7m精品国产导航在线| 国产欧美精品| 国际精品欧美精品| 免费在线视频一区| 在线日韩av| 影音先锋久久精品| 九九久久国产| 亚洲在线免费| 精品视频自拍| 香蕉久久99| 久久国产婷婷国产香蕉| 激情综合自拍| 97久久亚洲| 精品精品99| 日韩高清国产一区在线| 91精品一区二区三区综合| 国产毛片久久| 午夜久久黄色| 午夜在线精品偷拍| 国产精品毛片久久| 日韩精品影视| 成人台湾亚洲精品一区二区| 国产在线观看91一区二区三区| 亚洲性视频在线| 欧美丝袜一区| 丝袜av一区| 婷婷久久免费视频| 国产一区二区三区成人欧美日韩在线观看| 国产探花在线精品一区二区| 久久精品卡一| 日韩午夜av在线| 久久国产精品久久w女人spa| 日韩久久电影| 国精品产品一区| 亚洲精品一级| 久久久久中文| 国产精品久久久久蜜臀| 日韩中文欧美| 美女久久久精品| 亚洲精品美女91| 日韩影院在线观看| 99视频一区| 午夜久久久久| 欧美天堂在线| 欧美不卡视频| 亚洲激情婷婷| 国产成人免费| 午夜视频精品| 激情综合激情| 日韩中文字幕不卡| 欧美一区91| 国产aa精品| 免费的成人av| 亚洲精品无播放器在线播放| 久久亚洲国产| 亚洲不卡av不卡一区二区| av资源新版天堂在线| 日韩在线观看| 国产第一亚洲| 国模 一区 二区 三区| 九一国产精品| 国产一区91| 青青青国产精品| 国模大尺度视频一区二区| 婷婷综合六月| 在线亚洲观看| 国产精品亚洲片在线播放| 美女国产一区二区三区| 欧美国产偷国产精品三区| 影音先锋国产精品| 欧美亚洲福利| 欧美亚洲色图校园春色| 模特精品在线| 国产极品嫩模在线观看91精品| 亚洲精品大全| 日韩高清不卡一区二区| 久久在线免费| 亚洲天堂久久| 亚洲激情国产| 日韩中文字幕亚洲一区二区va在线| 丁香婷婷久久| 日韩深夜视频| 在线一区电影| 久久一区欧美| 蜜桃精品在线| 亚洲无线观看| 蜜桃久久久久| 亚洲高清影视| 一区二区三区四区日韩| 国产精品www.| 亚洲黑丝一区二区| 国产精品videosex极品| 欧美不卡高清| 欧美激情麻豆| 鲁大师成人一区二区三区| 欧美激情麻豆| 日本在线成人| 欧美在线影院| 日韩av自拍| 欧美久久亚洲| 一区二区电影| 日韩亚洲精品在线观看| 国产日韩欧美中文在线| 久久国产精品色av免费看| 国产视频一区二区在线播放| 麻豆精品蜜桃| 欧美日韩一区二区三区在线电影| 国产精品久一| 久久最新视频| 999久久久国产精品| 日韩中文欧美| 国产日韩1区| 成人精品天堂一区二区三区| 成人在线免费观看网站| 免费观看久久久4p| 三级欧美在线一区| 亚洲视频www| 黄色在线一区| 日本综合字幕| 欧美日韩国产观看视频| 91嫩草亚洲精品| 三级在线看中文字幕完整版| 国产欧洲在线| 国产不卡av一区二区| 久久伊人久久| 你懂的亚洲视频| 欧美黑人巨大videos精品| 日韩精品a在线观看91| 国产精品成久久久久| 亚洲一级少妇|