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

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

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

瀏覽:215日期: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久久,三上悠亚国产精品一区二区三区
国产精品xvideos88| 国产精品2023| 精品视频一二| 国产精品地址| 国产精品一区高清| 久久超级碰碰| 精品国产欧美| 中文字幕一区久| 欧美激情五月| 成人台湾亚洲精品一区二区| 国产中文字幕一区二区三区| 国产一区二区三区四区五区 | 免费不卡在线视频| 国产精品美女久久久浪潮软件| 久久久久欧美精品| 亚洲三级毛片| 视频在线观看一区二区三区| 一区二区国产在线观看| 丝袜国产日韩另类美女| 亚洲精品九九| 久久大逼视频| 日韩av网站免费在线| 国产精品手机在线播放| 九九九精品视频| 欧美三级网址| 亚洲精品91| 日本亚洲欧美天堂免费| 国产福利亚洲| 亚洲精品88| 欧美精品自拍| 亚洲另类av| 国产伦精品一区二区三区千人斩| 欧美交a欧美精品喷水| 成人精品高清在线视频| 久久人人88| 制服诱惑一区二区| 97精品一区| 久久国产福利| 国产精品日韩精品中文字幕| 国产精品久久久久av电视剧| 麻豆亚洲精品| 日韩国产在线观看| 国产一区日韩| 亚洲欧美日本国产专区一区| 7m精品国产导航在线| 91综合视频| 视频一区欧美日韩| 欧美激情 亚洲a∨综合| 黄色成人精品网站| 国产精品白丝久久av网站| 日韩一区亚洲二区| 亚洲日本国产| 日韩精品电影| 日韩三级久久| 秋霞影院一区二区三区| 日韩欧美中文字幕电影 | 国产精品一区2区3区| 九色porny丨国产首页在线| 视频精品一区二区| 里番精品3d一二三区| 亚洲精华国产欧美| 老色鬼精品视频在线观看播放| 国产综合婷婷| 国产精品chinese| 91精品国产91久久久久久黑人| 中文字幕亚洲影视| 日韩欧美精品综合| 日韩va亚洲va欧美va久久| 亚洲不卡系列| 国产免费播放一区二区| 欧美日韩国产亚洲一区| 久久永久免费| 亚洲一区二区三区无吗| 一本大道色婷婷在线| 日韩精品久久久久久久软件91| 深夜福利视频一区二区| 青草久久视频| 午夜欧美视频| 国产va在线视频| 日韩在线a电影| 伊人久久视频| 欧美黄色一区二区| 亚洲免费专区| 欧美特黄一区| 六月婷婷综合| 国产日产一区| 日韩精品一卡二卡三卡四卡无卡| 日本黄色精品| 国产精品亚洲欧美一级在线| 久久国产精品久久久久久电车 | 首页欧美精品中文字幕| 久久男人av资源站| 国产精品香蕉| 日本成人手机在线| 亚洲精品福利| 午夜精品网站| 亚洲第一精品影视| 福利精品一区| 国产精品久av福利在线观看| 亚洲人www| 午夜在线一区二区| 欧美性感美女一区二区 | 亚洲激情五月| 精精国产xxxx视频在线播放| 日本视频一区二区| 亚洲欧美日韩国产| 欧美+日本+国产+在线a∨观看| 国产一区二区三区久久| 国产精品极品国产中出| 国产精品日本一区二区三区在线| 亚洲欧美一级| 亚洲最新av| 蜜臀久久久久久久| 久久午夜精品一区二区| 99成人在线| 在线综合亚洲| 亚洲一区国产| 日韩网站在线| 最新亚洲一区| 久久精品亚洲欧美日韩精品中文字幕| 精品国产日韩欧美精品国产欧美日韩一区二区三区 | 日韩高清在线不卡| 亚洲精选久久| 日韩中文字幕亚洲一区二区va在线| 亚洲欧美日韩高清在线| 99久久激情| 1024精品久久久久久久久| 国产字幕视频一区二区| 亚洲激精日韩激精欧美精品| 亚洲激情社区| 石原莉奈一区二区三区在线观看| 久久亚洲影院| 免费在线视频一区| 男女精品网站| 天堂俺去俺来也www久久婷婷| 亚洲精品一区二区在线播放∴| 日韩av黄色在线| 久久精品国产免费| 91免费精品| 精品欧美激情在线观看| 亚洲午夜电影| 午夜一区在线| 91嫩草精品| 久久精品网址| 免费高潮视频95在线观看网站| 久久久久久久久久久妇女 | 日本综合精品一区| 国产精品手机在线播放| 91综合网人人| 欧美高清一区| 美女精品网站| 欧美在线观看天堂一区二区三区| 日韩av一区二区在线影视| 国产精品magnet| 欧美日韩国产观看视频| 婷婷成人基地| 少妇精品在线| 久久av免费看| 国产91精品对白在线播放| 日韩中文字幕91| 国产精品久久久久久久免费软件| 激情视频网站在线播放色| 一区免费视频| 国产剧情在线观看一区| 热三久草你在线| 模特精品在线| 欧美aa在线视频| 午夜精品久久久久久久久久蜜桃| 亚洲欧美日韩高清在线| 国产午夜久久av| 欧洲av一区二区| 亚洲区第一页| 色在线视频观看| 亚欧洲精品视频在线观看| 麻豆成人在线观看| 美女网站一区| 日本视频中文字幕一区二区三区| 国产一区二区三区黄网站 | 国产精品2023| 欧美精品一区二区三区精品| 亚洲制服少妇| 久久伊人久久| 亚洲一区二区三区高清不卡| 免费日韩成人| 性欧美长视频| 国产aⅴ精品一区二区三区久久 | 一区在线免费观看| 国产精品极品国产中出| 99久久精品网站| 日本a口亚洲| 久久国产日韩| 亚洲精品大全| 99久久久久国产精品| 国产日韩一区二区三区在线| 99精品一区| 国产精品xvideos88| 亚洲一区二区三区高清| 成人午夜在线| 日韩高清电影免费| 欧洲毛片在线视频免费观看|