labels

Sentivex Incidents Ticket API

GET/api/labels

프로젝트 라벨 목록 조회(GET) 및 신규 라벨 생성(POST)을 담당한다.

API 라우트: /api/labels 프로젝트 라벨 목록 조회(GET) 및 신규 라벨 생성(POST)을 담당한다. 라벨은 이슈에 부착해 카테고리·태그 역할을 하며, 프로젝트 단위로 관리된다. GET 주요 기능: - 프로젝트의 모든 라벨을 이름 오름차순으로 반환 - Redis 캐시(TTL 60초) 적용 — 반복 조회 성능 최적화 POST 주요 기능: - 새 라벨 생성, color 미지정 시 기본값 #6366f1(인디고) 사용 - 생성 후 라벨 목록 캐시 무효화 권한: 프로젝트 접근 가능 멤버 이상 (requireUser + requireProjectAccess) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X GET https://sit.in-bridge.com/api/labels \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/labels", {
  method: "GET",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();
POST/api/labels

프로젝트 라벨 목록 조회(GET) 및 신규 라벨 생성(POST)을 담당한다.

API 라우트: /api/labels 프로젝트 라벨 목록 조회(GET) 및 신규 라벨 생성(POST)을 담당한다. 라벨은 이슈에 부착해 카테고리·태그 역할을 하며, 프로젝트 단위로 관리된다. GET 주요 기능: - 프로젝트의 모든 라벨을 이름 오름차순으로 반환 - Redis 캐시(TTL 60초) 적용 — 반복 조회 성능 최적화 POST 주요 기능: - 새 라벨 생성, color 미지정 시 기본값 #6366f1(인디고) 사용 - 생성 후 라벨 목록 캐시 무효화 권한: 프로젝트 접근 가능 멤버 이상 (requireUser + requireProjectAccess) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Request body

projectIdstring<uuid>required
namestringrequired
colorstring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X POST https://sit.in-bridge.com/api/labels \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"projectId":"00000000-0000-0000-0000-000000000000","name":"string","color":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/labels", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "projectId": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "color": "string"
  })
});
const data = await res.json();
PATCH/api/labels/{labelId}

특정 라벨의 수정(PATCH) 및 삭제(DELETE)를 처리한다.

API 라우트: /api/labels/[labelId] 특정 라벨의 수정(PATCH) 및 삭제(DELETE)를 처리한다. 라벨은 프로젝트 단위로 존재하며, 이슈 분류·필터링에 활용된다. - PATCH : 라벨 이름·색상 부분 업데이트. 변경 후 프로젝트 라벨 캐시 무효화. - DELETE : 라벨 영구 삭제. 삭제 후 프로젝트 라벨 캐시 무효화. 캐시: Redis cacheKeys.labelsByProject(projectId) — 라벨 목록 GET 응답 캐시 권한: 프로젝트 접근 가능 멤버 이상 (requireUser + requireProjectAccess) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

labelIdstringrequired

Request body

namestring
colorstring

Responses

200 성공400 입력 검증 실패(zod)401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X PATCH https://sit.in-bridge.com/api/labels/{labelId} \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","color":"string"}'
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/labels/{labelId}", {
  method: "PATCH",
  headers: {
    "Authorization": `Bearer ${token}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "name": "string",
    "color": "string"
  })
});
const data = await res.json();
DELETE/api/labels/{labelId}

특정 라벨의 수정(PATCH) 및 삭제(DELETE)를 처리한다.

API 라우트: /api/labels/[labelId] 특정 라벨의 수정(PATCH) 및 삭제(DELETE)를 처리한다. 라벨은 프로젝트 단위로 존재하며, 이슈 분류·필터링에 활용된다. - PATCH : 라벨 이름·색상 부분 업데이트. 변경 후 프로젝트 라벨 캐시 무효화. - DELETE : 라벨 영구 삭제. 삭제 후 프로젝트 라벨 캐시 무효화. 캐시: Redis cacheKeys.labelsByProject(projectId) — 라벨 목록 GET 응답 캐시 권한: 프로젝트 접근 가능 멤버 이상 (requireUser + requireProjectAccess) @author jijuta ([email protected]) @since 2026-05-03 @updated 2026-06-07 — JSDoc 표준(@author/@since/@param 등) 적용

Path parameters

labelIdstringrequired

Responses

200 성공401 미인증(JWT 쿠키 필요)403 권한 없음404 없음
cURL
curl -X DELETE https://sit.in-bridge.com/api/labels/{labelId} \
  -H "Authorization: Bearer $TOKEN"
JavaScript
const res = await fetch("https://sit.in-bridge.com/api/labels/{labelId}", {
  method: "DELETE",
  headers: {
    "Authorization": `Bearer ${token}`
  }
});
const data = await res.json();