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

news/2024/9/23 20:22:13/

获取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,其中就包含了版本号信息。

正确返回的结果如下:

在这里插入图片描述

version_was_supplied_for_the_POST_request_79">错误解决之 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.ppmy.cn/news/1508915.html

相关文章

day02--HTML CSS

一、HTML表单 表单的作用是用于采集用户再页面上填入的数据,并发送给后端服务器,经常用于用户注册、登录、xx信息添加、xx信息修改 1.1表单 1、input表示文本框 type属性:负责配置不同的输入框类型 text:普通文本框 password&…

C++ 语言特性01 - 基本数据类型

目录 0. 概述: 1. C++ 中基本数据类型及位宽(Bits) 2. C++ 中基本数据类型的取值范围 ​3. 无符号和有符号整数表示 4. 定点数表示 5. 浮点数表示 6. C++ 11 新增的数据类型 long long 0. 概述: 本文介绍下C++中的基本数据类型,它是C++编程基础,应理解数据类型的位宽…

【微前端中常见的问题及其解决办法】

随着前端技术的飞速发展,大型应用系统的复杂性和规模性日益增加,传统的单体前端架构逐渐暴露出维护成本高、升级困难、技术栈单一等问题。为了应对这些挑战,微前端(Micro-Frontends)作为一种新的架构模式应运而生。微前…

全网最适合入门的面向对象编程教程:36 Python的内置数据类型-字典

全网最适合入门的面向对象编程教程:36 Python 的内置数据类型-字典 摘要: 字典是非常好用的容器,它可以用来直接将一个对象映射到另一个对象。一个拥有属性的空对象在某种程度上说就是一个字典,属性名映射到属性值。在内部&#…

模拟三层--控制层、业务层和数据访问层

三层的概念:https://developer.aliyun.com/article/1390024 一、新建一个项目 我新建好的项目名为spring__ioc_02,然后在 src-main-java 下建立三层(数据访问层、业务层和控制层)的包 dao、service 和controller、并在包下建立相应的接口和实现类 Proje…

如何构建高效且实用的编程学习笔记系统

目录 一、明确目标二、选择合适的工具示例:使用Notion构建笔记系统 三、记录技巧1. 精简原则2. 结构化思维3. 多媒体辅助4. 实践为主 四、复习与更新1. 定期复习2. 动态更新3. 分享交流 五、总结 在编程学习的道路上,每一位开发者都会遇到各种各样的挑战…

CPU缓存一致性机制详解

CPU缓存一致性机制详解 在多核处理器中,缓存一致性是保证系统正常运行的重要环节。本文详细介绍了缓存一致性协议、写入策略、总线嗅探、目录协议等相关概念,并通过示例代码解释了这些机制是如何在实际应用中工作的。通过学习本文,读者可以深…

老阳推荐的temu选品师项目能不能做成?

在不断变化的电商领域,temU选品师项目作为一种新兴职业,受到了越来越多的关注。老阳的推荐使得这一项目引起了不少人的兴趣,那么,temU选品师项目究竟能否成功呢?让我们从一个新的角度来探讨这一问题。 新兴市场的机遇与挑战 temU…