{"_id":"@anyup/uni-http","_rev":"4-673609ccb08657d345b7313a7f5734b0","name":"@anyup/uni-http","dist-tags":{"latest":"1.1.2"},"versions":{"1.0.0":{"name":"@anyup/uni-http","version":"1.0.0","description":"uniapp http library","main":"index.js","module":"index.js","browser":"index.js","scripts":{"publish":"npm publish --access=public","publish:revert":"npm unpublish @anyup/uni-http@version"},"keywords":["uniapp","library","http","anyup"],"author":{"name":"anyup"},"license":"MIT","gitHead":"d38d2bcda2826563acb850bf9a7dca9ebe065fa5","_id":"@anyup/uni-http@1.0.0","_nodeVersion":"12.13.1","_npmVersion":"6.12.1","dist":{"integrity":"sha512-g7MnwmQryyzJfkUVysWMube3FvGkjaDdnJhmydEbNLP4BL5QYsPXeWKDhWKAWIn1EUEN8pFrYrkpNA1Oq+vKfw==","shasum":"f8fcada13cdddf61d700452ad4f568b58814d4ea","tarball":"https://registry.npmjs.org/@anyup/uni-http/-/uni-http-1.0.0.tgz","fileCount":7,"unpackedSize":14517,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiHb/DACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoVNw/+PDYjwYfNKH3LQJOrDJ+7QftaV+Ny6XsLw/I1U8d7U8NYkVQm\r\nViSHJv40kpiyfvaU2Aq7lyF7RwQ9Tbn2ujf/F1A9vbuBIoQxNJWzqSyj2Fed\r\nW0XmNqQGmesKnA4VoFzy42AX0tWtngaTGEw6Zw608SVHHBVPg5zczhKpyKaE\r\nVx3psh5Qa6OvR9ncOrsXJ3QKEXmRUEQiB0nfzBjgTBduYLEXA7NTlzOrPRgy\r\n7FuBC6DA+xvLuEggwwgYEG2sU/AT2YETro6W9mrnMam0G5n4uAir41F1I2Df\r\nW2mduewzI7d9gkBqtLjCIAH1VF1XX7bo7HtDzFJTu/wViPwnU08uWNiiV95N\r\n3C+VOl9bpf72DVcMlAeHuR9JGmekE3fwd6yImItz0Ag85TFxyqvWdTgicU7U\r\nHSxQb79uMIg5HEfs7PLIngW3gktNOZrG7mkrqACsuipv610PMAwxzFQPpwF/\r\ndyKxTHNF3XR3zUsN4bHkDQzcmK2GNKgHnVP7UEETjF8NQoOykL3fBqLlkyaN\r\nGHRUFDiOQpr2pN8n0JMTIa8Gvtx7mUli/H0phtCuGB/16dRmLVKX1q8wQ1AH\r\nHYQKZS3E0IG0FAkHQtYKcQTkK95CyLU9lKIcr2+OfjhI1+dKGckGX7qtTP3L\r\nUOA2oilT1tWXSHX8yRSrvY4jXnri+hpDpHo=\r\n=ShLO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDckrKbp3hWl16wz/wY7fmqsHi0SsibZmxVl0OIRNV8rAiEAseSkRLrabNVHEvCYmJsqpFW330yMPnD3P0zHpA5UIRM="}]},"_npmUser":{"name":"anyup","email":"283051833@qq.com"},"directories":{},"maintainers":[{"name":"anyup","email":"283051833@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uni-http_1.0.0_1646116802834_0.3154380777214254"},"_hasShrinkwrap":false},"1.1.0":{"name":"@anyup/uni-http","version":"1.1.0","description":"uniapp http library","main":"index.js","module":"index.js","browser":"index.js","scripts":{"publish":"npm publish --access=public","publish:revert":"npm unpublish @anyup/uni-http@version"},"keywords":["uniapp","library","http","anyup"],"author":{"name":"anyup"},"license":"MIT","gitHead":"24ca977e784c736ef5f4009d0934f7369a02ca4b","_id":"@anyup/uni-http@1.1.0","_nodeVersion":"16.9.0","_npmVersion":"7.21.1","dist":{"integrity":"sha512-dy7FJJQYN2LPw3eQiRJO5j7dgTuITclpFuwNgEL+Oioka5n2c6jYuLQKpLPAlEuQ+MKn+SCsv5tyYNKrvjqZdQ==","shasum":"d436238d61ecb140a90bdcc662934ec903b3191e","tarball":"https://registry.npmjs.org/@anyup/uni-http/-/uni-http-1.1.0.tgz","fileCount":7,"unpackedSize":16081,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC4sG/MfPCliLO6dWjpENFm5APMV6bzqxrSOF3HGe7BNAIgDYvJ1wlJIQWArQFQlZ+E8i3O+WgGJJqd+hSkNDTwuW4="}]},"_npmUser":{"name":"anyup","email":"283051833@qq.com"},"directories":{},"maintainers":[{"name":"anyup","email":"283051833@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uni-http_1.1.0_1713853422791_0.8004503867633088"},"_hasShrinkwrap":false},"1.1.1":{"name":"@anyup/uni-http","version":"1.1.1","description":"uni-http","main":"dist/uni-http.cjs.js","module":"dist/uni-http.mjs.js","browser":"dist/uni-http.umd.js","types":"dist/types/index.d.ts","keywords":["uni-app","http","uni-http","uni.request"],"author":{"name":"anyup"},"license":"MIT","scripts":{"build:dev":"rollup -c -w rollup.config.js --bundleConfigAsCjs --environment NODE_ENV:development","build":"rollup -c rollup.config.js --bundleConfigAsCjs --environment NODE_ENV:production","update:version":"npx bumpp --no-push --no-commit --no-tag","publish":"npm publish --access=public","publish:revert":"npm unpublish @anyup/uni-http@1.0.0 --force"},"dependencies":{},"_id":"@anyup/uni-http@1.1.1","gitHead":"d1be402f20248349863ad6722fd6160950c54b63","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-1m8gmFLDjFTuhFBm+sf3tw68FGj9OYebYvd1yIl5NWRAyDX5h84p/P2253r91GmTZOxRsibqzq9G8/8nkCl+9w==","shasum":"6cfe2a69fbfb0ef0cee00c5bff59a4dc4385992e","tarball":"https://registry.npmjs.org/@anyup/uni-http/-/uni-http-1.1.1.tgz","fileCount":7,"unpackedSize":19638,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDf0xS5Awc9J/pXo48YV5aWNXzcKr/ZrkV2AUPErnCY1AiB6Jue5K8E8pKx+TBixxQ3YI8IzlM+xIzhSGmA2gGM7xw=="}]},"_npmUser":{"name":"anyup","email":"283051833@qq.com"},"directories":{},"maintainers":[{"name":"anyup","email":"283051833@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uni-http_1.1.1_1716382401576_0.24527588338073403"},"_hasShrinkwrap":false},"1.1.2":{"name":"@anyup/uni-http","version":"1.1.2","description":"uni-http","main":"dist/uni-http.cjs.js","module":"dist/uni-http.mjs.js","browser":"dist/uni-http.umd.js","types":"dist/types/index.d.ts","keywords":["uni-app","http","uni-http","uni.request"],"author":{"name":"anyup"},"license":"MIT","scripts":{"build:dev":"rollup -c -w rollup.config.js --bundleConfigAsCjs --environment NODE_ENV:development","build":"rollup -c rollup.config.js --bundleConfigAsCjs --environment NODE_ENV:production","update:version":"npx bumpp --no-push --no-commit --no-tag","publish":"npm publish --access=public","publish:revert":"npm unpublish @anyup/uni-http@1.0.0 --force"},"dependencies":{},"_id":"@anyup/uni-http@1.1.2","gitHead":"68644a86ed2b400df5236df7e3f21c271843baec","_nodeVersion":"20.13.1","_npmVersion":"10.5.2","dist":{"integrity":"sha512-hjNmRgWCq27FbqoxnUn2nq+kzLL6ry2wnrD3yOQqeUq+d8LALWBkYYBMwAZkFimAYa+rLmrJ3/ujEg19AAmB1w==","shasum":"f1feb04c1892726b6751bff2ff0908d4d9cd3c98","tarball":"https://registry.npmjs.org/@anyup/uni-http/-/uni-http-1.1.2.tgz","fileCount":7,"unpackedSize":19577,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDkpC74qAO0jRwkJfXCPsru3117QQ1KI/MAyz3RW8W+5AiB5AFJdfsuHDSTCbKejDz7YB4APf5B8l2n5rgj7aRJ9JQ=="}]},"_npmUser":{"name":"anyup","email":"283051833@qq.com"},"directories":{},"maintainers":[{"name":"anyup","email":"283051833@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/uni-http_1.1.2_1716961817596_0.7717064413945847"},"_hasShrinkwrap":false}},"time":{"created":"2022-03-01T06:40:02.781Z","1.0.0":"2022-03-01T06:40:03.013Z","modified":"2024-05-29T05:50:17.957Z","1.1.0":"2024-04-23T06:23:42.974Z","1.1.1":"2024-05-22T12:53:21.709Z","1.1.2":"2024-05-29T05:50:17.780Z"},"maintainers":[{"name":"anyup","email":"283051833@qq.com"}],"description":"uni-http","keywords":["uni-app","http","uni-http","uni.request"],"author":{"name":"anyup"},"license":"MIT","readme":"<p align=\"center\">\n    <img alt=\"logo\" src=\"https://www.anyup.cn/static/anyup/images/logo.png\" width=\"120\" style=\"margin-bottom: 10px;\">\n</p>\n\n<h1 align=\"center\">uni-http</h1>\n\n<p align=\"center\">🔥 一个基于 promise 的，轻量且强大的 http 网络库</p>\n\n<p align=\"center\">\n  🔥 <a href=\"https://www.anyup.cn/site/zh/uni-http/guide/introduce.html\">文档网站</a>\n</p>\n\n## 一. 简介\n\n🚀 基于 `Promise` 的 `uni.request` ，轻量且强大的 `http` 网络库，特性：\n\n1. 提供统一的 `Promise API`\n2. 基于 `uni.request`，支持多种运行环境，浏览器 H5、小程序、APP 等\n3. 支持发起 `GET`、`POST`、`PUT`、`DELETE`、`upload` 请求\n4. 支持请求／响应拦截器\n5. 支持请求的 `header`\n6. 支持处理请求的 `loading` 状态\n7. 支持对请求结果进行统一处理\n8. 支持链式调用\n9. 支持批量生成 API 请求，简化代码量 99.9%，一行代码搞定繁琐的请求 function\n\n## 二. 安装\n\n```bash\nnpm install @anyup/uni-http -S\n```\n\n## 三. 快速上手\n\n```javascript\nimport { Http, HttpHeader } from \"@anyup/uni-http\";\n\nconst http = new Http();\n// 仅为示例 API 域名，使用时替换自己的接口域名即可\nconst baseURL = \"https://demo.api.com\";\n// 设置header\nconst header = { \"Content-Type\": \"application/json;charset=UTF-8\" };\n\n// 设置 baseURL 和 header，支持链式调用\nhttp.setBaseURL(baseURL).setHeader(header);\n\n// 设置请求拦截器\nhttp.interceptors.request.use(\n  (request) => {\n    if (request.loading) {\n      // 如果配置了loading，请求开始需要显示\n    }\n    // 设置请求header\n    request.header[\"Authorization\"] = \"\";\n    return request;\n  },\n  (error) => Promise.resolve(error)\n);\n// 设置响应拦截器\nhttp.interceptors.response.use(\n  (response) => {\n    // 请求成功\n    if (!response.data) {\n      return Promise.reject(new Error(\"接口请求未知错误\"));\n    }\n    // 其他业务处理\n    return Promise.resolve(response);\n  },\n  (error) => {\n    // 请求失败，业务处理\n    return Promise.reject(error);\n  },\n  (complete) => {\n    // 请求完成\n    if (complete.request.loading) {\n      // 如果配置了loading，请求完成需要关闭\n    }\n    // 其他业务处理\n    console.log(\"complete\", complete);\n  }\n);\n\n// 登录请求示例，并配置请求时显示loading\nfunction requestLogin(username, password) {\n  http\n    .request({\n      url: \"/api/login\",\n      data: { username, password },\n      method: \"POST\",\n      loading: true\n    })\n    .then((res) => {\n      // 处理 response 响应\n      if (res.status === 1) {\n        console.log(res);\n      }\n    });\n}\n\n// 直接使用 get|post|put|delete 方式请求\nfunction requestLogin1(username, password) {\n  // 也可以直接使用 post 方法\n  http\n    .post(\"/api/login\", { username, password }, { loading: true })\n    .then((res) => {\n      // 处理 response 响应\n      if (res.status === 1) {\n        console.log(res);\n      }\n    });\n}\n\n// es6 await 风格 登录请求示例，使用 request 方式请求\nasync function requestLogin2(username, password) {\n  const res = await http.request({\n    url: \"/api/login\",\n    data: { username, password },\n    method: \"POST\",\n    loading: true\n  });\n  // 处理 response 响应\n  if (res.status === 1) {\n    console.log(res);\n  }\n}\n```\n\n## 四. 进阶使用\n\n> 工厂模式按配置表批量生成 API 方法库，体验飞一般的感觉\n\n### 1. 初始化 Http 类\n\n```javascript\n// http.js\nimport { Http } from \"@anyup/uni-http\";\n\nconst header = {};\nconst baseURL = \"\";\nconst http = new Http().setBaseURL(baseURL).setHeader(header);\n\n// 请求拦截器\nhttp.interceptors.request.use(\n  (request) => {\n    if (request.loading) {\n      // 如果配置了loading，显示\n    }\n    // 设置请求header\n    request.header[\"Authorization\"] = \"\";\n    return request;\n  },\n  (error) => Promise.resolve(error)\n);\n// 响应拦截器\nhttp.interceptors.response.use(\n  (response) => {\n    // 请求成功\n    if (!response.data) {\n      return Promise.reject(new Error(\"接口请求未知错误\"));\n    }\n    // 其他业务处理\n    return Promise.resolve(response);\n  },\n  (error) => {\n    // 请求失败，业务处理\n    return Promise.reject(error);\n  },\n  (complete) => {\n    // 请求完成\n    if (complete.request.loading) {\n      // 如果配置了loading，关闭\n    }\n    // 其他业务处理\n    console.log(\"complete\", complete);\n  }\n);\n\nexport default new Http.Builder(http);\n```\n\n### 2. 定义接口配置\n\n```javascript\n// api.js\nimport http from \"./http\";\n\nconst urls = {\n  // 用户\n  login: { url: \"/api/login\", method: \"POST\", loading: true } // 用户登录\n};\n\nexport default http.dispatch(urls);\n```\n\n### 3. 在代码中使用\n\n```javascript\n// demo.vue\n<script>\nimport api from './api'\nexport default {\n  methods: {\n    login() {\n      api.login({ username:\"\", password:\"\" }).then(res => {\n        // 请求成功\n      })\n    }\n  }\n}\n```\n\n## 五. 贡献代码\n\n使用过程中发现任何问题都可以提 [Issue](https://github.com/anyup/uni-http/issues) 给我，当然，我们也非常欢迎你给我们发 [PR](https://github.com/anyup/uni-http/pulls)。\n\n## 六. 浏览器支持\n\n支持现代浏览器以及 Android >= 4.0、iOS >= 8.0。\n\n## 七. 开源协议\n\n本项目基于 MIT 协议，请自由地享受和参与开源。\n\n## 八. 联系我\n\n如果使用过程中有任何问题，可以联系我，如下方式：\n\n- 微信号：anyupxing\n\n- 微信公众号：前端梦工厂\n\n- 掘金专栏：[uni-app 前端开发](https://juejin.cn/column/7070045934851194911)\n","readmeFilename":"README.md"}