🏢 ListPackagesByVendor
获取指定供应商(vendor)下的所有包名。
何时使用
🏢 列出某组织名下全部包,如 symfony/*;🔍 评估某 vendor 的生态规模;🧩 构建 vendor 维度的索引页。
签名
go
func (c *ComposerClient) ListPackagesByVendor(vendor string) (*domain.PackageListResponse, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
vendor | string | 供应商名,如 symfony、laravel |
返回值
| 值 | 类型 | 说明 |
|---|---|---|
| 结果 | *domain.PackageListResponse | PackageNames 为该 vendor 下的包名列表 |
| 错误 | error | HTTP 失败、非 200、JSON 解析失败时返回 |
对应端点:GET https://packagist.org/packages/list.json?vendor={vendor}。SDK 会自动对 vendor 做 URL 编码。
示例
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.ListPackagesByVendor("symfony")
if err != nil {
log.Fatal(err)
}
fmt.Printf("symfony 名下包数: %d\n", len(resp.PackageNames))
for _, name := range resp.PackageNames[:5] {
fmt.Println(" -", name)
}
}进阶
- 🧩 按包类型过滤用
ListPackagesByType。 - 📋 获取全量包名用
ListPackages。 - 📦 需附带仓库 URL 等字段用
ListPackagesWithData。