当前位置: 首页 > news >正文

如何获取VS Code扩展的版本更新信息

获取VS Code 扩展的版本更新的需求

因为企业内部有架设私有扩展管理器的要求,但是对于一些官方市场的插件,希望可以自动获取这些扩展的更新并上传至私有扩展管理器。于是就有了本篇介绍的需求: 通过API的方式获取VS Code 扩展的更新。

关于VS Code的私有扩展管理器可以参考:
VS Code 扩展之——私有扩展管理(Private Extension Manager)

获取VS Code 扩展的版本的方式

VS Code 的官方扩展市场的地址是: https://marketplace.visualstudio.com/。

每个插件的页面在 “Version History” 的标签也可以看到各个版本并且进行下载。
在这里插入图片描述

如何通过API获取这些版本信息并且下载最新版本呢? 使用网络爬虫去爬页面有是一种方法,但是VS Code提供了一个最便捷的方式, 就是其提供了一个https的接口:https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery

为了演示方便,这里使用 Postman 来呼叫这个接口, 以获取“Test Runner for Java“ 的扩展的版本为例。

用 Postman 查询 Test Runner for Java 插件的版本信息,需要配置一个 POST 请求,包括设置必要的 Headers 和 Body。详细的步骤如下:

  1. 打开 Postman。
  2. 创建一个新的请求。
  3. 设置请求方法为 POST。
  4. 将 URL 设置为 https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery
    5.** 在 Headers 部分添加如下信息:**
    Content-Type: application/json
    Accept: application/json;api-version=6.0-preview.1
    

注意: 这里一定要将Accept设置为正确,否则调用的时候会出现下面的 No api-version was supplied for the \"POST\" request 错误。
在这里插入图片描述

  1. 在 Body 部分,选择 raw 并设置类型为 JSON

  2. 输入请求体(需要使用Test Runner for Java的插件发布者和插件标识符):

{"filters": [{"criteria": [{ "filterType": 7, "value": "vscjava.vscode-java-test" }]}],"flags": 103
}

请注意

  • vscjava.vscode-java-test 是插件的 ID。
  • filterType 设为 7 表示我们按照扩展的唯一标识符来过滤结果
  • flags 值为 103 是请求返回包括版本信息、资产详情等在内的一系列详细信息的标志位。
  1. 点击发送(Send)按钮。

Postman 将会发送一个 POST 请求到 Visual Studio Marketplace 的扩展查询 API,并会显示查询结果。在响应体中看到包含 Test Runner for Java 插件的详细信息的 JSON,其中就包含了版本号信息。

正确返回的结果如下:

在这里插入图片描述

错误解决之 No api-version was supplied for the “POST” request

{"$id": "1","innerException": null,"message": "No api-version was supplied for the \"POST\" request. The version must be supplied either as part of the Accept header (e.g. \"application/json; api-version=1.0\") or as a query parameter (e.g. \"?api-version=1.0\").","typeName": "Microsoft.VisualStudio.Services.WebApi.VssVersionNotSpecifiedException, Microsoft.VisualStudio.Services.WebApi","typeKey": "VssVersionNotSpecifiedException","errorCode": 0,"eventId": 3000
}


http://www.lryc.cn/news/425951.html

相关文章:

  • Python开源项目周排行 2024年第13周
  • day04--js的综合案例
  • 【产品经理】定价策略
  • webrtc学习笔记3
  • Transformer架构;Encoder-Decoder;Padding Mask;Sequence Mask;
  • 【leetcode详解】特殊数组II : 一题代表了一类问题(前缀和思想)
  • SQL每日一练-0814
  • Android持久化技术—文件存储
  • 动手学深度学习(pytorch)学习记录12-激活函数[学习记录]
  • 微服务实战系列之玩转Docker(十)
  • Mysql(四)---增删查改(进阶)
  • SOAP @WebService WSDL
  • 【Qt】QWidget的toolTip属性
  • 【操作系统】什么是进程?什么是线程?两者有什么区别(面试常考!!!)
  • AI -- Machine Learning
  • 了解交换机_1.交换机的技术发展
  • ubuntu 24.04 安装 Nvidia 显卡驱动 + CUDA + cuDNN,配置 AI 深度学习训练环境,简单易懂,一看就会!
  • 跟李沐学AI:目标检测的常用算法
  • 基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(一)---UnrealCV获取深度+分割图像
  • Java算法解析一:二分算法及其衍生出来的问题
  • 数学建模预测类—【一元线性回归】
  • 配置更加美观的 Swagger UI
  • 软件测试 - 基础(软件测试的生命周期、测试报告、bug的级别、与开发人员产生争执的调解方式)
  • RTX 4070 GDDR6显存曝光:性能与成本的平衡之选
  • canvas的基础使用
  • Windows 常用网络命令之 telnet(测试端口是否连通)
  • x264 编码器像素运算系列:asd8函数
  • 什么是AR、VR、MR、XR?
  • Epic Games 商店面向欧盟 iPhone 用户上线
  • 【计算机毕设项目】2025级计算机专业小程序项目推荐 (小程序+后台管理)