🔥 ListPopularPackages
获取 Packagist 流行包列表(按下载量 / 收藏排序)。
何时使用
🔥 展示热门包排行榜;🎯 为新项目选型提供参考;📈 分析生态中最活跃的包。
签名
go
func (c *ComposerClient) ListPopularPackages(perPage int) (*domain.PopularPackagesResponse, error)参数
| 参数 | 类型 | 说明 |
|---|---|---|
perPage | int | 每页返回数量,如 100 |
返回值
| 值 | 类型 | 说明 |
|---|---|---|
| 结果 | *domain.PopularPackagesResponse | Packages 为 []PopularPackage(含 name/description/url/downloads/favers),Total 为总数,Next 为下一页 URL |
| 错误 | error | HTTP 失败、非 200、JSON 解析失败时返回 |
对应端点:GET https://packagist.org/explore/popular.json?per_page={perPage}。
示例
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.ListPopularPackages(20)
if err != nil {
log.Fatal(err)
}
fmt.Printf("总数: %d\n", resp.Total)
for i, p := range resp.Packages {
fmt.Printf("%2d. %s (下载 %d, 收藏 %d)\n", i+1, p.Name, p.Downloads, p.Favers)
}
if resp.Next != "" {
fmt.Println("下一页:", resp.Next)
}
}进阶
- 📈 仓库级总量统计用
GetStatistics。 - 🔍 按关键词搜索用
SearchPackages。 - 📦 想要某包完整元数据用
GetPackage。