검색 API

모든 스킬에 대한 전문 검색입니다.

스킬 검색

GET /api/v1/skills/search

파라미터

| 파라미터 | 타입 | 설명 | |-----------|------|-------------| | q | string | 검색 쿼리 (필수) | | page | number | 페이지 번호 (기본값: 1) | | limit | number | 페이지당 항목 수 (기본값: 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 - 너무 짧음
  • * - 너무 광범위함

관련성 점수

결과는 다음으로 순위가 매겨집니다:

  1. 정확한 일치 - 전체 용어 일치
  2. 필드 가중치 - 이름 > 설명 > 내용
  3. 인기도 - 별점 수 가산
  4. 신선도 - 최근 업데이트 가산

자동완성

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 | 잘못된 검색 구문 |