Skip to content

🏷️ SearchPackagesByTags

通过标签(tags)搜索 Packagist 上的包,支持多标签与分页。

何时使用

🏷️ 按功能标签(如 httppsr-18)发现同领域包;🧩 构建「按标签浏览」的目录页;🎯 多标签组合做精确筛选。

签名

go
func (c *ComposerClient) SearchPackagesByTags(tags []string, perPage, page int) (*domain.SearchResponse, error)

参数

参数类型说明
tags[]string标签列表,如 []string{"http", "psr-18"},多标签为 AND 关系
perPageint每页结果数;传 0 或负数则不带 per_page 参数
pageint页码;传 0 或负数则不带 page 参数

返回值

类型说明
结果*domain.SearchResponseResults[]SearchResultTotal 为总数,Next 为下一页 URL
错误errorHTTP 失败、非 200、JSON 解析失败时返回

对应端点:GET https://packagist.org/search.json?tags={t}&tags={t}。每个标签作为一个 tags 查询参数。

示例

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.SearchPackagesByTags([]string{"http", "client"}, 15, 1)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("结果总数: %d\n", resp.Total)
	for i, r := range resp.Results {
		fmt.Printf("%2d. %s%s\n", i+1, r.Name, r.Description)
	}
}

进阶

基于 MIT 许可证发布