Skip to content

📋 ListPackages

获取 Packagist 上所有包名列表。

何时使用

📋 构建本地包名索引或搜索引擎;🛠️ 自建镜像的初始化全量清单;🔍 配合 GetPackage 批量拉取详情。

签名

go
func (c *ComposerClient) ListPackages() (*domain.PackageListResponse, error)

参数

本方法无参数。

返回值

类型说明
结果*domain.PackageListResponsePackageNames[]string 包名列表
错误errorHTTP 失败、非 200、JSON 解析失败时返回

对应端点:GET https://packagist.org/packages/list.json

示例

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.ListPackages()
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("包总数: %d\n", len(resp.PackageNames))
	for _, name := range resp.PackageNames[:3] {
		fmt.Println("  -", name)
	}
}

进阶

数据量

该端点返回全量包名(数十万条),响应体较大。如需按条件过滤请用下面更精确的变体,避免拉取全量再本地过滤。

基于 MIT 许可证发布