검색 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- 너무 짧음*- 너무 광범위함
관련성 점수
결과는 다음으로 순위가 매겨집니다:
- 정확한 일치 - 전체 용어 일치
- 필드 가중치 - 이름 > 설명 > 내용
- 인기도 - 별점 수 가산
- 신선도 - 최근 업데이트 가산
자동완성
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 | 잘못된 검색 구문 |