You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps REST API中Packages命名空间及Package[]类型归属查询

解决Azure DevOps Get Packages API无对应序列化类的问题
  • 首先明确:你安装的Microsoft.TeamFoundationServer.Client包并没有提供这个API对应的Package实体类,因为该API属于Artifact Details模块,官方客户端库并未完全覆盖所有REST API的实体定义。
  • 最直接的解决方法是手动定义匹配API响应结构的实体类,根据官方文档里的响应字段编写即可,示例如下:
    // 用System.Text.Json特性映射字段,若用Newtonsoft.Json可替换为[JsonProperty]
    public class Package
    {
        [JsonPropertyName("id")]
        public string Id { get; set; }
        
        [JsonPropertyName("name")]
        public string Name { get; set; }
        
        [JsonPropertyName("version")]
        public string Version { get; set; }
        
        [JsonPropertyName("description")]
        public string Description { get; set; }
        
        // 按需添加其他返回字段,比如发布者、创建时间等
        [JsonPropertyName("publisher")]
        public string Publisher { get; set; }
        
        [JsonPropertyName("creationDate")]
        public DateTime CreationDate { get; set; }
    }
    
  • 调用API并反序列化的示例代码:
    using System.Net.Http.Headers;
    using System.Text.Json;
    using System.Text;
    
    var patToken = "你的个人访问令牌";
    var orgUrl = "https://dev.azure.com/你的组织名称";
    var feedId = "你的Feed ID";
    
    using var client = new HttpClient();
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", 
        Convert.ToBase64String(Encoding.ASCII.GetBytes($":{patToken}")));
    
    var response = await client.GetAsync($"{orgUrl}/_apis/artifacts/feed/{feedId}/packages?api-version=7.1-preview.1");
    response.EnsureSuccessStatusCode();
    
    var jsonContent = await response.Content.ReadAsStringAsync();
    var packages = JsonSerializer.Deserialize<Package[]>(jsonContent);
    
  • 注意:如果API返回嵌套结构的字段(比如metadata等),需要对应添加嵌套类来匹配字段结构。

内容的提问来源于stack exchange,提问作者user22548444

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:08:19