BGM Event Calendar (1.0.0)

Download OpenAPI specification:Download

이 문서는 잠정적으로 합의된 부산개발자모임 이벤트 캘린더의 API 규약을 정리해 둔 것입니다. 모든 API 요청은 보안연결 (HTTPS)만을 지원합니다.

인증 방법 (Security Schemes)

accessToken

Access token will be used to authenticate/authorize user to use the API.

Security Scheme Type API Key
Cookie parameter name: X-ACCESS-TOKEN

refreshToken

Refresh token will be used to renew expired access token. If the refresh token also expired, the user need to login again by using basic authentication.

Security Scheme Type API Key
Cookie parameter name: X-REFRESH-TOKEN

인증

인증과 관련된 API

로그인

아이디와 비밀번호를 활용해 엑세스/리프래시 토큰을 받아냄

관리자 전용

Request Body schema: application/json
username
required
string
password
required
string

Responses

Request samples

Content type
application/json
{
  • "username": "gildong123",
  • "password": "gildongpw1"
}

로그아웃

기존 세션으로부터 로그아웃

관리자 전용

Authorizations:

Responses

토큰 갱신

리프래시 토큰을 이용하여 엑세스 토큰을 재발급함. 만약 리프래시 토큰이 만료 직전이면 (만료 15분 전) 리프래시 토큰의 재발급도 함께 진행.

관리자 전용

Authorizations:

Responses

비밀번호 변경

리프래시 토큰과 현재 비밀번호를 확인한 후 사용자의 비밀번호를 변경.

다음과 같은 경우 잘못된 요청 (Bad Request) 응답을 받을 수 있음.

  • 리프래시 토큰 정보는 유효하나, 현재 비밀번호를 잘못 입력한 경우
  • 새 비밀번호가 비밀번호 규칙에 부합하지 않는경우

만약, 리프래시 토큰이 만료를 앞두고 있는 경우 (만료 15분 전) 새 리프래시 토큰이 발급됨.

관리자 전용

Authorizations:
Request Body schema: application/json
currentPassword
required
string
newPassword
required
string

Responses

Request samples

Content type
application/json
{
  • "currentPassword": "thisisprevpassword",
  • "newPassword": "HelloWorld"
}

캘린더

캘린더 상에 표시될 정보와 관련된 API

달 별 이벤트 목록 불러오기

주어진 년도와 달의 이벤트 개수와 목록을 불러옴. 2021년 1월 이후의 달만 지원

만약, 주어진 달에 이벤트가 없는 경우, 이벤트가 없다는 명시적인 응답이 주어짐

path Parameters
year
required
number >= 2021

주어진 달의 년도를 나타냄

month
required
number [ 1 .. 12 ]

주어진 달을 나타냄

Responses

Response samples

Content type
application/json
Example
{
  • "numEvent": 0
}

이벤트

개별 이벤트/행사에 관한 API

이벤트 추가

새로운 이벤트 추가: 날짜와 제목은 필수정보, 이벤트 카테고리 및 세부 사항은 선택적으로 입력 가능

관리자 전용

Authorizations:
Request Body schema: application/json
year
required
number >= 2021
month
required
number [ 1 .. 12 ]
date
required
number [ 1 .. 31 ]
name
required
string
detail
string
category
string

Responses

Request samples

Content type
application/json
{
  • "year": 2021,
  • "month": 10,
  • "date": 31,
  • "name": "할로윈 파티",
  • "detail": "10월 31일에 할로윈 파티를 진행합니다!! 많은 참여 바랍니다!!",
  • "category": "네트워킹"
}

이벤트 삭제

기존 이벤트 삭제: 기존 이벤트를 지칭하는 eventID가 필요함

관리자 전용

Authorizations:
path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

Responses

이벤트 수정

기존 이벤트 수정: 기존 이벤트를 지칭하는 eventID가 필요함

관리자 전용

Authorizations:
path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

Request Body schema: application/json
year
number >= 2021
month
number [ 1 .. 12 ]
date
number [ 1 .. 31 ]
name
string
detail
string
category
string

Responses

Request samples

Content type
application/json
{
  • "month": 11,
  • "date": 1,
  • "name": "조금 늦은 할로윈 파티",
  • "detail": "기존에 계획된 10월 31일 할로윈 파티를 하루 미루어서 진행합니다!!"
}

이벤트 정보 보기

이벤트 정보 보기: 이벤트를 지칭하는 eventID가 필요함

path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

Responses

Response samples

Content type
application/json
{
  • "year": 2021,
  • "month": 11,
  • "date": 1,
  • "name": "조금 늦은 할로윈 파티",
  • "detail": "기존에 계획된 10월 31일 할로윈 파티를 하루 미루어서 진행합니다!!",
  • "category": "네트워킹"
}

참가 신청

이벤트의 참여 신청에 관련된 API

이벤트 참가 신청

새로운 이벤트 참가 신청: 참가자 이름, 연락처 (전화번호 및 이메일) 입력. 연락처는 010으로 시작하는 한국 휴대전화번호 (총 11자리)만 입력 가능. 추가 의견은 선택적으로 입력.

만약 이름 + 이메일의 쌍이 같은 경우, 중복된 참여 요청으로 간주하여 잘못된 요청 (Bad Request)를 반환함

path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

Request Body schema: application/json
participantName
required
string
phoneNumber
string
email
required
string
comment
string

Responses

Request samples

Content type
application/json
{
  • "participantName": "홍길동",
  • "phoneNumber": "01012345678",
  • "email": "gildong.hong@gmail.com",
  • "comment": "참여 신청합니다!! 예상 도착시간은 10시 입니다."
}

이벤트 참가 신청 목록 보기

이벤트 참가 신청 목록 확인: 특정 이벤트의 참여자, 연락처, 추가 의견을 모두 반환

관리자 전용

Authorizations:
path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

Responses

Response samples

Content type
application/json
Example
{
  • "numParticipants": 0
}

이벤트 참가 신청 수정

이벤트 참가 신청 수정: 특정 이벤트의 참여자, 연락처, 추가 의견의 수정 가능

이벤트와 이벤트티켓의 식별자가 필요함

관리자 전용

Authorizations:
path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

ticketID
required
number >= 1

기존 이벤트 티켓의 식별자

Request Body schema: application/json
participantName
string
phoneNumber
string
email
string
comment
string

Responses

Request samples

Content type
application/json
{
  • "phoneNumber": "01077777777"
}

이벤트 참가 신청 삭제

이벤트 참가 신청 삭제: 이벤트와 이벤트티켓의 식별자가 필요함

관리자 전용

Authorizations:
path Parameters
eventID
required
number >= 1

기존 이벤트의 식별자

ticketID
required
number >= 1

기존 이벤트 티켓의 식별자

Responses