Search API
すべてのスキルを対象とした全文検索です。
スキル検索
GET /api/v1/skills/search
パラメータ
| パラメータ | タイプ | 説明 |
|-----------|------|-------------|
| q | string | 検索クエリ(必須) |
| page | number | ページ番号(デフォルト:1) |
| limit | number | 1ページあたりの項目数(デフォルト:20) |
| category | string | カテゴリでフィルター |
| platform | string | プラットフォームでフィルター |
| minStars | number | 最小スター数 |
| hasIndex | boolean | marketplace.jsonの有無 |
リクエスト例
bash
curl "https://skillsmp.com/api/v1/skills/search?q=react+typescript&category=frontend&minStars=100"
レスポンス例
json
{
"data": [
{
"id": "456",
"owner": "community",
"repo": "react-typescript-guide",
"name": "React TypeScript Guide",
"description": "Type-safe React development patterns",
"stars": 890,
"score": 15.7,
"highlights": {
"name": "<mark>React</mark> <mark>TypeScript</mark> Guide",
"description": "Type-safe <mark>React</mark> development patterns"
}
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 45,
"totalPages": 3
},
"meta": {
"query": "react typescript",
"took": 23
}
}
検索構文
基本検索
react components
すべてのテキストフィールドでこれらの用語を検索します。
完全一致フレーズ
"react hooks"
完全なフレーズに一致します。
フィールド指定
name:react description:hooks
特定のフィールドを検索します。
除外
react -class
マイナスで用語を除外します。
ワイルドカード
react*
前方一致検索。
検索のヒント
効果的なクエリ
良い例:
react hooks state management- 具体的な用語"code review" security- フレーズ + 用語typescript name:react- フィールド指定
効果が低い例:
the best react skill- ストップワードは無視されるr- 短すぎる*- 広すぎる
関連性スコアリング
結果は以下でランク付けされます:
- 完全一致 - 完全な用語一致
- フィールドの重み - 名前 > 説明 > コンテンツ
- 人気度 - スター数のブースト
- 鮮度 - 最近の更新のブースト
オートコンプリート
GET /api/v1/skills/autocomplete
パラメータ
| パラメータ | タイプ | 説明 |
|-----------|------|-------------|
| q | string | 部分クエリ |
| limit | number | 最大候補数(デフォルト:5) |
リクエスト例
bash
curl "https://skillsmp.com/api/v1/skills/autocomplete?q=rea"
レスポンス例
json
{
"data": [
{
"text": "react",
"count": 89
},
{
"text": "react hooks",
"count": 34
},
{
"text": "react typescript",
"count": 28
}
]
}
エラーハンドリング
| コード | 説明 |
|------|-------------|
| INVALID_QUERY | クエリが空または短すぎる |
| QUERY_TOO_LONG | クエリが200文字を超えている |
| INVALID_SYNTAX | 検索構文が不正 |