Skip to content

📦 ListPackagesWithData

获取包名列表,并附带指定的附加字段(如仓库 URL、类型、是否废弃)。

何时使用

📦 一次拿到包名 + 仓库地址,避免对每个包再调 GetPackage;🚮 找出已废弃(abandoned)的包做治理;🧩 构建「包名 → 仓库」映射表用于镜像或分析。

签名

go
func (c *ComposerClient) ListPackagesWithData(fields []string) (*domain.PackageListWithDataResponse, error)

参数

参数类型说明
fields[]string附加字段名列表,如 []string{"repository", "type", "abandoned"}

返回值

类型说明
结果*domain.PackageListWithDataResponsePackagesmap[包名]PackageData,含请求字段
错误errorHTTP 失败、非 200、JSON 解析失败时返回

对应端点:GET https://packagist.org/packages/list.json?fields[]={f}&fields[]={f}

示例

go
package main

import (
	"fmt"
	"log"
	"time"

	"github.com/scagogogo/composer-skills/pkg/client"
)

func main() {
	c := client.NewComposerClient(30 * time.Second)

	resp, err := c.ListPackagesWithData([]string{"repository", "type"})
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("包数: %d\n", len(resp.Packages))
	for name, data := range resp.Packages {
		fmt.Printf("  %s -> %s (%s)\n", name, data.Repository, data.Type)
	}
}

进阶

可用字段

常见可用字段:repository(仓库 URL)、type(包类型)、abandoned(是否废弃,可为 bool 或替代包名字符串)。

基于 MIT 许可证发布