如何获取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的插件发布者和插件标识符):

json 复制代码
{
  "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
}


相关推荐
stereohomology4 天前
Solomd抖动问题扩展方式解决:多LLM合作,DSV4.1flash收尾
extension·solomd
gc_22996 天前
使用VS Code终端创建Vue项目报错:“npm : 无法加载文件 ...\npm.ps1,因为在此系统上禁止运行脚本”
vue·vs code
formulahendry6 天前
为什么全世界都在 Fork 它?VS Code 官方纪录片(中字完整版)正式上线!
微软·visual studio code·vs code
十@八九7 天前
VS Code 接入 AMD Vivado 2026.1 AI 助手:从 VSIX 到 MCP 实战
人工智能·fpga·vs code·vivado·mcp
formulahendry13 天前
在 VS Code 里自由切换 Copilot、Claude、Codex、OpenCode、Pi、Kimi、Qwen:任何 Agent 都能接
visual studio code·vs code·acp
Vex2une19 天前
PowerShell 发展史:从命令行外壳到跨平台自动化引擎
windows·自动化·azure·powershell·vs code·脚本语言·dsc
AI大模型-小华20 天前
AI 编程进入深度开发阶段:什么时候普通方案不够,需要更高算力支持?
人工智能·chatgpt·ai编程·vs code·codex·codex cli
GPU实战笔记23 天前
云端写 Python:JupyterLab 和 VS Code Remote-SSH,按工作方式选
python·vs code·jupyterlab·remote-ssh·远程开发·云端开发
阿钱真强道1 个月前
课时00 嵌入式技术应用设计实训 | 开发环境搭建与开发板认识
git·hal库·keil·vs code·开发环境搭建·stm32f103·st-link
漂着的圆木1 个月前
模型:VS Code启用HydraFusion编排器配置与限制
vs code·github copilot·hydrafusion·运行时模型编排器·配置排查