代码库
http客户端
https://github.com/imcvampire/vue-axios
import {createApp} from 'vue';
import axios from 'axios'
import VueAxios from 'vue-axios'
const app = createApp(App);
// https://github.com/imcvampire/vue-axios
app.use(VueAxios, axios)
// 多个axios实例
app.use(VueAxios,
{
// 第一个axios实例
$gitee: axios.create({
baseURL: "https://gitee.com/api/v5",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
}
}),
// 第二个axios实例
$github: axios.create({
baseURL: "https://api.github.com",
headers: {
"Content-Type": "application/json",
"Accept": "application/json",
}
})
})
// 挂载id=vue-app的html节点
app.mount('#vue-app');
<script>
// 选项式API
export default {
name: 'App',
methods: {
getList() {
this.axios.get(api).then((response) => {
console.log(response.data)
})
// or
this.$http.get(api).then((response) => {
console.log(response.data)
})
}
}
}
</script>
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
type Response struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data map[string]string `json:"data"`
}
// SourceAuth 封装一个函数, 演示如何post一个接口, 并处理返回的数据
func SourceAuth(SrcName string) (http.Header, error) {
// 创建一个POST请求
url := "https://xxxx.com/auth"
postData := map[string]string{"srcname": SrcName}
// 创建一个HTTP客户端
client := &http.Client{}
// 将map转换为json字符串
jsonData, err := json.Marshal(postData)
if err != nil {
return nil, err
}
// 创建一个POST请求
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
return nil, err
}
// 设置请求头
req.Header.Set("Content-Type", "application/json")
// 发送请求并获取响应
resp, err := client.Do(req)
if err != nil {
fmt.Println("Error sending request:", err)
return nil, err
}
defer resp.Body.Close()
// 读取响应内容
body, err := io.ReadAll(resp.Body)
if err != nil {
fmt.Println("Error reading response body:", err)
return nil, err
}
var res Response
err = json.Unmarshal(body, &res)
if err != nil {
return nil, err
}
if res.Code != 0 {
return nil, fmt.Errorf("request failed, code=%d, msg=%s", res.Code, res.Msg)
}
var headers = resp.Header
for key, value := range res.Data {
headers.Add(key, value)
}
return headers, nil
}
func main() {
headers, err := SourceAuth("xxxx")
if err != nil {
fmt.Println("Error reading response body:", err)
}
fmt.Println(headers)
}
import requests
response = requests.get('http://python.org')
print(response.text)
import aiohttp
async with aiohttp.ClientSession() as session:
async with session.get('http://python.org') as response:
print(await response.text())
集成ui框架
https://bootstrap-vue-next.github.io/bootstrap-vue-next/docs.html#installation-vue-js
import { createApp } from 'vue';
import {createBootstrap} from 'bootstrap-vue-next'
import 'bootstrap/dist/css/bootstrap.css'
import 'bootstrap-vue-next/dist/bootstrap-vue-next.css'
const app = createApp(App);
// https://bootstrap-vue-next.github.io/bootstrap-vue-next/docs.html#installation-vue-js
app.use(createBootstrap())
// 挂载id=vue-app的html节点
app.mount('#vue-app');
// vite.config.js/ts
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import Components from 'unplugin-vue-components/vite'
import {BootstrapVueNextResolver} from 'bootstrap-vue-next'
export default defineConfig({
plugins: [
vue(),
Components({
// 自动注册bootstrap-vue-next组件
resolvers: [BootstrapVueNextResolver()],
}),
],
})