Skip to content

🔎 SearchInfo

搜索包并返回结构化结果,内部执行 composer search query --format=json 并解析为 *SearchResult

何时使用

  • 🤖 程序化处理搜索结果,按名称/描述筛选。
  • 📦 在脚自动发现并对比候选包。
  • 🌐 构建「依赖推荐」工具时获取结构化数据。

签名

go
func (c *Composer) SearchInfo(query string) (*SearchResult, error)

参数

参数类型说明
querystring搜索关键词

返回值

类型说明
结果*SearchResult解析后的搜索结果
错误error执行或 JSON 解析失败时返回

SearchResult 与条目结构:

go
type SearchResult struct {
    Results []SearchResultItem `json:"results"`
    Total   int                `json:"total,omitempty"`
}

type SearchResultItem struct {
    Name        string `json:"name"`
    Description string `json:"description,omitempty"`
    URL         string `json:"url,omitempty"`
    Repository  string `json:"repository,omitempty"`
}

示例

go
package main

import (
    "fmt"
    "log"

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

func main() {
    comp, err := composer.New(composer.DefaultOptions())
    if err != nil {
        log.Fatalf("初始化失败: %v", err)
    }

    result, err := comp.SearchInfo("logger")
    if err != nil {
        log.Fatalf("搜索失败: %v", err)
    }
    fmt.Printf("共 %d 条结果\n", result.Total)
    for _, pkg := range result.Results {
        fmt.Printf("%s: %s\n", pkg.Name, pkg.Description)
    }
}

进阶

收窄搜索范围

  • SearchOnlyName(query):仅按包名匹配。
  • SearchWithType(query, packageType):按类型筛选。
  • SearchWithFormat(query, format):指定输出格式(含 json)。

文本输出

只需原始文本输出用 Searchcomposer search query)。

解析函数

ParseSearchResult(output string) 可单独解析任意 composer search --format=json 输出。

🔍 相关方法

基于 MIT 许可证发布