콘텐츠 카탈로그
카탈로그는 Public API의 다른 모든 곳에서 사용되는 카테고리, 모듈 및 주제 식별자의 진실의 출처입니다. POST /assignments을 호출하거나, 맞춤형 과정 항목을 빌드하거나, 컴플라이언스 응답을 해석하기 전에 여기에서 식별자를 조회하세요. 필수 범위: content:read.
엔드포인트
| Method | Path | Scope | 용도 |
|---|---|---|---|
GET | /api/public/v1/content/categories | content:read | 모든 최상위 카테고리. |
GET | /api/public/v1/content/categories/{'{'}categoryId{'}'}/topics | content:read | 카테고리 내의 모든 주제와 모듈 및 CWE 정보. |
GET | /api/public/v1/content/cwes/{'{'}cweId{'}'}/topics | content:read | CWE id를 그것을 다루는 주제 목록으로 해결. |
카테고리 목록 조회
조직에 대한 모든 표시 카테고리를 반환합니다. 카테고리는 컴플라이언스 엔드포인트에서 사용되는 네 OWASP 패밀리를 반영합니다 — web, api, mobile, client.
GET /api/public/v1/content/categories
Authorization: Bearer scs_live_…응답
{
"count": 4,
"categories": [
{ "categoryId": "web", "title": "OWASP Top 10 (Web)" },
{ "categoryId": "api", "title": "OWASP API Security Top 10" },
{ "categoryId": "mobile", "title": "OWASP Mobile Top 10" },
{ "categoryId": "client", "title": "OWASP Client-Side Top 10" }
]
}예시
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/content/categories카테고리 내 주제 목록 조회
주어진 카테고리로 롤업되는 모든 주제를 반환하며, 각각은 상위 모듈과 SARIF 매핑에 사용되는 CWE 집합으로 주석이 달려 있습니다. categoryId가 위의 네 가지 중 하나가 아니면 404 category_not_found를 반환합니다.
GET /api/public/v1/content/categories/web/topics
Authorization: Bearer scs_live_…응답
{
"categoryId": "web",
"categoryTitle": "OWASP Top 10 (Web)",
"count": 2,
"topics": [
{
"topicId": "sql-injection",
"title": "SQL Injection",
"moduleId": "a03-injection",
"moduleTitle": "A03: Injection",
"cwes": ["CWE-89"]
},
{
"topicId": "xss-reflected",
"title": "Reflected Cross-Site Scripting",
"moduleId": "a03-injection",
"moduleTitle": "A03: Injection",
"cwes": ["CWE-79", "CWE-80"]
}
]
}topicId는POST /assignments과 맞춤형 과정 항목에 전달하는 값입니다.moduleId은 컴플라이언스 프레임워크 상세 응답에서 사용되는moduleId와 일치하므로, 클라이언트 측에서 두 엔드포인트를 조인할 수 있습니다.moduleTitle은 OWASP 모듈 아래에 그룹화되지 않은 주제에 대해null일 수 있습니다(드물게, 임시 콘텐츠용으로 예약됨).
예시
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/content/categories/api/topicsCWE를 주제로 해결
CWE 식별자가 주어지면, 그것을 다루는 모든 주제를 반환합니다. 이는 SARIF 수집이 내부적으로 사용하는 동일한 조회입니다 — 전체 보고서를 수집하지 않고 결과를 교육에 매핑하려는 경우 직접 호출하세요.
GET /api/public/v1/content/cwes/CWE-89/topics
Authorization: Bearer scs_live_…허용되는 CWE 형식
{'{'}cweId{'}'} 경로 세그먼트는 서버 측에서 정규화됩니다. 다음 모두 동일하게 해결됩니다:
89cwe-89CWE-89external/cwe/cwe-89
응답의 cwe 필드는 항상 정규화된 표준 형식(CWE-89)을 그대로 반영합니다. 알 수 없는 CWE는 count: 0와 빈 topics 배열로 200를 반환합니다 — 404가 아닙니다 — 따라서 클라이언트가 매핑되지 않은 ID를 특별히 처리할 필요가 없습니다.
응답
{
"cwe": "CWE-89",
"count": 1,
"topics": [
{
"topicId": "sql-injection",
"title": "SQL Injection",
"moduleId": "a03-injection",
"moduleTitle": "A03: Injection",
"categoryId": "web",
"categoryTitle": "OWASP Top 10 (Web)"
}
]
}예시
curl -sS \
-H "Authorization: Bearer $SCH_API_KEY" \
https://api.limeplate.com/api/public/v1/content/cwes/external/cwe/cwe-79/topics식별자 안정성
카테고리, 모듈 및 주제 식별자는 안정적인 문자열입니다 — 일단 게시되면 변경되지 않습니다. 기존 모듈 아래에 새 주제가 추가될 수 있고, 기존 카테고리 아래에 새 모듈이 추가될 수 있지만, 통합의 회복력을 유지하기 위해 이름 변경은 피합니다. 주제가 폐기되는 경우, 식별자는 보존되고 주제는 재활용되는 대신 카탈로그에서 숨겨집니다.