Open API 명세

Talk to Me (나에게 말해줘)의 게시물을 외부 서비스에서 조회하거나 작성할 수 있는 공개 API입니다. 별도의 인증 키 없이 사용할 수 있으며, 모든 요청과 응답은 JSON(UTF-8)입니다.

  • Base URL: https://talk.swn.kr/api/v1
  • CORS: 모든 출처(*)에서 브라우저 호출 가능 (/api/* 경로 한정)
  • 버전: v1 (2026-07-10)

GET /api/v1/posts — 게시물 목록 조회

게시물 목록을 최신순으로 반환합니다. 목록에는 본문(content)이 포함되지 않으며, 본문은 단건 조회로 확인합니다.

쿼리 파라미터 (모두 선택)

  • limit — 반환 개수 제한 (양의 정수)
  • category — 카테고리 필터 (아래 카테고리 목록 참고)
  • sort=popular — 인기순 정렬 (좋아요 → 답글 수 → 최신순)
curl "https://talk.swn.kr/api/v1/posts?limit=5&category=일상"

응답 200

[
  {
    "id": 1,
    "title": "게시물 제목",
    "category": "일상",
    "created_at": "2026-07-10 15:00:00.000000",
    "likes": 3,
    "dislikes": 0,
    "comment_count": 2,
    "voted": null
  }
]
  • voted — 호출한 IP가 남긴 투표 상태 ("like" / "dislike" / null)
  • 비추천 10회 이상 또는 신고 5회 이상 누적된 게시물은 목록에서 제외됩니다.

GET /api/v1/posts/{id} — 게시물 단건 조회

본문(content)을 포함한 게시물 하나를 반환합니다. 본문은 마크다운 원문 그대로 반환되며, 렌더링은 클라이언트 몫입니다.

curl "https://talk.swn.kr/api/v1/posts/1"

응답 200

{
  "id": 1,
  "title": "게시물 제목",
  "content": "본문 내용 (**마크다운** 지원)",
  "category": "일상",
  "created_at": "2026-07-10 15:00:00.000000",
  "likes": 3,
  "dislikes": 0,
  "voted": null
}

오류: 존재하지 않는 id는 404{"error": "Post not found"}

POST /api/v1/posts — 게시물 작성

새 게시물을 익명으로 작성합니다. contentcategory는 필수, title은 선택입니다.

curl -X POST "https://talk.swn.kr/api/v1/posts" \
  -H "Content-Type: application/json" \
  -d '{"title": "제목", "content": "내용", "category": "일상"}'

요청 본문

  • title — 제목 (선택). 생략하거나 비우면 내용의 앞 10자가 제목으로 사용됩니다.
  • content — 내용, 최대 150자 (마크다운 사용 가능)
  • category — 카테고리. 허용값: 일상, 먹방, 잡담, 쇼핑, 스포츠, 프로야구, 정보공유, TV/연예, 홍보, 패션, 뷰티

응답 201: 생성된 게시물(id 포함)을 반환합니다.

오류 400: 필수 필드 누락 시 {"error": "Content and category are required"}, 허용되지 않는 카테고리면 {"error": "Invalid category", "allowed_categories": [...]}, 내용이 150자를 초과하면 {"error": "내용은 150자를 넘을 수 없습니다.", "max_length": 150}

이용 안내

  • 작성된 게시물은 즉시 사이트 피드에 공개되며, 이용약관운영정책이 동일하게 적용됩니다.
  • 도배·자동화 남용이 확인되면 해당 IP의 이용이 제한될 수 있습니다.
  • 문의: [email protected]
×

게시물 신고

신고 사유를 선택해주세요.