Skip to content

Commit 6ad2b03

Browse files
authored
Add initial API specification for Tickets application (#8)
티켓 및 댓글 관리 기능을 위한 API 지원이 추가되었습니다. 사용자 친화적인 API 명세서가 업데이트되어 티켓 관련 엔드포인트 정보를 제공합니다.
1 parent 070df12 commit 6ad2b03

File tree

2 files changed

+323
-0
lines changed

2 files changed

+323
-0
lines changed

tickets/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Tickets application API specification

tickets/openapi.yaml

Lines changed: 322 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,322 @@
1+
openapi: 3.0.1
2+
info:
3+
title: My Project
4+
description: ""
5+
version: 1.0.0
6+
tags:
7+
- name: tickets api
8+
paths:
9+
/tickets:
10+
get:
11+
summary: GET /tickets
12+
deprecated: false
13+
description: 티켓 목록 확인
14+
tags:
15+
- tickets api
16+
parameters: []
17+
responses:
18+
"200":
19+
description: ""
20+
content:
21+
application/json:
22+
schema:
23+
type: object
24+
properties: {}
25+
example:
26+
tickets:
27+
- id: 01JQA8YHB2WQ5GTDWDKWK744B9
28+
title: First Ticket
29+
description: This is the first ticket.
30+
status: open
31+
comments: []
32+
- id: 01JQA8YHSK6NSD1QEEJPES8592
33+
title: Slow load
34+
description: Page takes long.
35+
status: open
36+
comments: []
37+
- id: 01JQA8YJ8G5G5J6XTXJEB4RE13
38+
title: Button broken
39+
description: Click does nothing.
40+
status: open
41+
comments: []
42+
- id: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
43+
title: 새로운 티켓
44+
description: 티켓을 하나 추가하려고 합니다.
45+
status: open
46+
comments:
47+
- id: 01JQFRVCZ36PC7C3CDYWGGGVH2
48+
ticket_id: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
49+
content: 첫 댓글의 주인공이 되세요!
50+
headers: {}
51+
security: []
52+
post:
53+
summary: POST /tickets
54+
deprecated: false
55+
description: 티켓 생성
56+
tags:
57+
- tickets api
58+
parameters: []
59+
requestBody:
60+
content:
61+
application/json:
62+
schema:
63+
type: object
64+
properties:
65+
title:
66+
type: string
67+
description: 새로운 티켓
68+
description:
69+
type: string
70+
description: 티켓을 하나 추가하려고 합니다
71+
required:
72+
- title
73+
- description
74+
example:
75+
title: 새로운 티켓
76+
description: 티켓 하나를 추가하려고 합니다.
77+
responses:
78+
"200":
79+
description: ""
80+
content:
81+
application/json:
82+
schema:
83+
type: object
84+
properties: {}
85+
example:
86+
id: 01JQX1FTS2KJFQRFEWVEM83QH2
87+
title: 새로운 티켓
88+
description: 티켓 하나를 추가하려고 합니다.
89+
status: open
90+
comments: []
91+
headers: {}
92+
security: []
93+
/tickets/{id}:
94+
get:
95+
summary: GET /tickets/:id
96+
deprecated: false
97+
description: 특정 티켓 확인
98+
tags:
99+
- tickets api
100+
parameters:
101+
- name: id
102+
in: path
103+
description: ""
104+
required: true
105+
example: 01JQA8YHB2WQ5GTDWDKWK744B9
106+
schema:
107+
type: string
108+
responses:
109+
"200":
110+
description: ""
111+
content:
112+
application/json:
113+
schema:
114+
type: object
115+
properties: {}
116+
example:
117+
id: 01JQA8YHB2WQ5GTDWDKWK744B9
118+
title: First Ticket
119+
description: This is the first ticket.
120+
status: open
121+
comments: []
122+
headers: {}
123+
security: []
124+
patch:
125+
summary: PATCH /tickets/:id
126+
deprecated: false
127+
description: 티켓 수정
128+
tags:
129+
- tickets api
130+
parameters:
131+
- name: id
132+
in: path
133+
description: ""
134+
required: true
135+
example: 01JQA8YHB2WQ5GTDWDKWK744B9
136+
schema:
137+
type: string
138+
requestBody:
139+
content:
140+
application/json:
141+
schema:
142+
type: object
143+
properties:
144+
status:
145+
type: string
146+
description: closed
147+
required:
148+
- status
149+
example:
150+
status: closed
151+
responses:
152+
"200":
153+
description: ""
154+
content:
155+
application/json:
156+
schema:
157+
type: object
158+
properties: {}
159+
example:
160+
id: 01JQA8YHB2WQ5GTDWDKWK744B9
161+
title: First Ticket
162+
description: This is the first ticket.
163+
status: closed
164+
comments: []
165+
headers: {}
166+
security: []
167+
delete:
168+
summary: DELETE /tickets/:id
169+
deprecated: false
170+
description: 티켓 삭제
171+
tags:
172+
- tickets api
173+
parameters:
174+
- name: id
175+
in: path
176+
description: ""
177+
required: true
178+
example: 01JQX1FTS2KJFQRFEWVEM83QH2
179+
schema:
180+
type: string
181+
responses:
182+
"200":
183+
description: ""
184+
content:
185+
application/json:
186+
schema:
187+
type: object
188+
properties: {}
189+
example:
190+
id: 01JQX1FTS2KJFQRFEWVEM83QH2
191+
title: 새로운 티켓
192+
description: 티켓 하나를 추가하려고 합니다.
193+
status: closed
194+
comments: []
195+
headers: {}
196+
"404":
197+
description: ""
198+
content:
199+
application/json:
200+
schema:
201+
type: object
202+
properties:
203+
error:
204+
type: string
205+
required:
206+
- error
207+
headers: {}
208+
security: []
209+
/tickets/{ticketId}/comments:
210+
get:
211+
summary: GET /tickets/:ticketId/comments
212+
deprecated: false
213+
description: 댓글 목록
214+
tags:
215+
- tickets api
216+
parameters:
217+
- name: ticketId
218+
in: path
219+
description: ""
220+
required: true
221+
example: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
222+
schema:
223+
type: string
224+
responses:
225+
"200":
226+
description: ""
227+
content:
228+
application/json:
229+
schema:
230+
type: object
231+
properties: {}
232+
example:
233+
- id: 01JQFRVCZ36PC7C3CDYWGGGVH2
234+
ticket_id: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
235+
content: 첫 댓글의 주인공이 되세요!
236+
headers: {}
237+
security: []
238+
post:
239+
summary: POST /tickets/:ticketId/comments
240+
deprecated: false
241+
description: 댓글 생성
242+
tags:
243+
- tickets api
244+
parameters:
245+
- name: ticketId
246+
in: path
247+
description: ""
248+
required: true
249+
example: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
250+
schema:
251+
type: string
252+
requestBody:
253+
content:
254+
application/json:
255+
schema:
256+
type: object
257+
properties:
258+
content:
259+
type: string
260+
description: 첫 댓글의 주인공이 되세요
261+
required:
262+
- content
263+
example:
264+
content: 첫 댓글의 주인공이 되세요!
265+
responses:
266+
"200":
267+
description: ""
268+
content:
269+
application/json:
270+
schema:
271+
type: object
272+
properties: {}
273+
example:
274+
id: 01JQX26V9XH60Y98S7Z1J87EYR
275+
ticket_id: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
276+
content: 첫 댓글의 주인공이 되세요!
277+
headers: {}
278+
security: []
279+
/tickets/{ticketId}/comments/{id}:
280+
delete:
281+
summary: DELETE /tickets/:ticketId/comments/:id
282+
deprecated: false
283+
description: |
284+
댓글 삭제
285+
tags:
286+
- tickets api
287+
parameters:
288+
- name: ticketId
289+
in: path
290+
description: ""
291+
required: true
292+
example: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
293+
schema:
294+
type: string
295+
- name: id
296+
in: path
297+
description: ""
298+
required: true
299+
example: 01JQX26V9XH60Y98S7Z1J87EYR
300+
schema:
301+
type: string
302+
responses:
303+
"200":
304+
description: ""
305+
content:
306+
application/json:
307+
schema:
308+
type: object
309+
properties: {}
310+
example:
311+
id: 01JQX26V9XH60Y98S7Z1J87EYR
312+
ticket_id: 01JQFRSC1ZD0BD7J7CFC4Y4KXP
313+
content: 첫 댓글의 주인공이 되세요!
314+
headers: {}
315+
security: []
316+
components:
317+
schemas: {}
318+
securitySchemes: {}
319+
servers:
320+
- url: https://tickets-api.codedemo.co
321+
description: tickets-api.codedemo
322+
security: []

0 commit comments

Comments
 (0)