如何获取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
}


相关推荐
风痕天际8 天前
ESP32-S3开发教程五-按键中断2(使用FreeRTOS)
单片机·嵌入式硬件·esp32·vs code·esp32s3·esp-idf
小草cys11 天前
Claude Code for VSCode 最简安装
大模型·vs code·claude code
二哈喇子!1 个月前
MySQL命令行导入数据库
数据库·sql·mysql·vs code
二哈喇子!1 个月前
使用 VS Code 连接 MySQL 数据库
vs code
游学者1 个月前
Docker 升级后 VS Code 本地调试 AWS Lambda 报「Running AWS SAM projects locally requires Docker」的那些坑与排查思路
aws·lambda·vs code
lucky-billy2 个月前
使用 VS Code 通过 SSH 编译 Linux C++ 程序
linux·ssh·vs code·远程编译
liuzhilongDBA2 个月前
从collation mismatch异常到其原理
数据库·version·glibc·postgres·collation
钱彬 (Qian Bin)3 个月前
从零开始发表SCI论文—第1篇:安装Latex写作工具
latex·vs code·sci论文·环境准备
HackerTom3 个月前
vs code jupyter连gpu结点kernel
python·jupyter·gpu·vs code·远程
Sylvan Ding4 个月前
VSCode插件推荐 2025 - 拥抱 Agentic Coding 时代:是时候从 PyCharm 切换到 VSCode 生态了!
ide·vscode·pycharm·extension·插件·agentic·氛围编程