Skip to content

Commit

Permalink
feat: swagger에서 1줄 요약 표시
Browse files Browse the repository at this point in the history
  • Loading branch information
scarf005 committed Sep 14, 2023
1 parent c95d0de commit aa2e98d
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 16 deletions.
8 changes: 4 additions & 4 deletions contracts/src/books/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ export const bookMetasContracts = c.router(
method: 'GET',
path: '/info/:id',
pathParams: searchBookInfoByIdPathSchema,
description: '도서 정보를 조회합니다.',
summary: '도서 정보를 조회합니다.',
responses: {
200: searchBookInfoByIdResponseSchema,
404: bookInfoNotFoundSchema,
Expand All @@ -37,7 +37,7 @@ export const booksContract = c.router(
getById: {
method: 'GET',
path: '/:id',
description: 'book테이블의 ID기준으로 책 한 종류의 정보를 가져온다.',
summary: 'book테이블의 ID기준으로 책 한 종류의 정보를 가져온다.',
pathParams: searchBookByIdParamSchema,
responses: {
200: searchBookByIdResponseSchema,
Expand All @@ -47,7 +47,7 @@ export const booksContract = c.router(
get: {
method: 'GET',
path: '/',
description: '개별 책 정보(book)를 검색하여 가져온다. 책이 대출할 수 있는지 확인 할 수 있음',
summary: '개별 책 정보(book)를 검색하여 가져온다. 책이 대출할 수 있는지 확인 할 수 있음',
query: searchAllBooksQuerySchema,
responses: {
200: searchAllBooksResponseSchema,
Expand All @@ -57,7 +57,7 @@ export const booksContract = c.router(
patch: {
method: 'PATCH',
path: '/update',
description: '책 정보 하나를 수정합니다.',
summary: '책 정보 하나를 수정합니다.',
body: updateBookBodySchema,
responses: {
204: updateBookResponseSchema,
Expand Down
71 changes: 71 additions & 0 deletions contracts/src/books/mod.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
import { initContract } from '@ts-rest/core';
import {
searchAllBooksQuerySchema,
searchAllBooksResponseSchema,
searchBookByIdResponseSchema,
pubdateFormatErrorSchema,
updateBookBodySchema,
updateBookResponseSchema,
unknownPatchErrorSchema,
nonDataErrorSchema,
searchBookInfoByIdResponseSchema,
searchBookInfoByIdPathSchema,
searchBookByIdParamSchema,
} from './schema';
import { badRequestSchema, bookInfoNotFoundSchema, bookNotFoundSchema } from '../shared';

const c = initContract();

export const bookMetasContracts = c.router(
{
getById: {
method: 'GET',
path: '/info/:id',
pathParams: searchBookInfoByIdPathSchema,
summary: '도서 정보를 조회합니다.',
responses: {
200: searchBookInfoByIdResponseSchema,
404: bookInfoNotFoundSchema,
},
},
},
{ pathPrefix: '/bookmetas' },
);

export const booksContract = c.router(
{
getById: {
method: 'GET',
path: '/:id',
summary: 'book테이블의 ID기준으로 책 한 종류의 정보를 가져온다.',
pathParams: searchBookByIdParamSchema,
responses: {
200: searchBookByIdResponseSchema,
404: bookNotFoundSchema,
},
},
get: {
method: 'GET',
path: '/',
summary: '개별 책 정보(book)를 검색하여 가져온다. 책이 대출할 수 있는지 확인 할 수 있음',
query: searchAllBooksQuerySchema,
responses: {
200: searchAllBooksResponseSchema,
400: badRequestSchema,
},
},
patch: {
method: 'PATCH',
path: '/update',
summary: '책 정보 하나를 수정합니다.',
body: updateBookBodySchema,
responses: {
204: updateBookResponseSchema,
312: unknownPatchErrorSchema,
313: nonDataErrorSchema,
311: pubdateFormatErrorSchema,
},
},
},
{ pathPrefix: '/books' },
);
4 changes: 2 additions & 2 deletions contracts/src/lendings/mod.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ export const lendingsContract = c.router({
getMine: {
method: 'GET',
path: '/mypage/lendings',
description: '내 대출 기록을 가져옵니다.',
summary: '내 대출 기록을 가져옵니다.',
query: historiesGetMyQuerySchema,
responses: {
200: historiesGetResponseSchema,
Expand All @@ -25,7 +25,7 @@ export const lendingsContract = c.router({
get: {
method: 'GET',
path: '/lendings',
description: '사서가 전체 대출 기록을 가져옵니다.',
summary: '사서가 전체 대출 기록을 가져옵니다.',
query: historiesGetQuerySchema,
responses: {
200: historiesGetResponseSchema,
Expand Down
6 changes: 3 additions & 3 deletions contracts/src/likes/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ export const likesContract = c.router(
post: {
method: 'POST',
path: '/:bookInfoId/like',
description: '책에 좋아요를 누릅니다.',
summary: '책에 좋아요를 누릅니다.',
pathParams: z.object({ bookInfoId: bookInfoIdSchema }),
body: null,
responses: {
Expand All @@ -24,7 +24,7 @@ export const likesContract = c.router(
method: 'GET',
path: '/:bookInfoId/like',
summary: 'Like 정보를 가져온다.',
description: '사용자가 좋아요 버튼을 누르면 좋아요 개수를 가져온다.',
summary: '사용자가 좋아요 버튼을 누르면 좋아요 개수를 가져온다.',
pathParams: z.object({ bookInfoId: bookInfoIdSchema }),
responses: {
200: likeResponseSchema,
Expand All @@ -34,7 +34,7 @@ export const likesContract = c.router(
delete: {
method: 'DELETE',
path: '/:bookInfoId/like',
description: 'delete a like',
summary: 'delete a like',
pathParams: z.object({ bookInfoId: bookInfoIdSchema }),
body: null,
responses: {
Expand Down
8 changes: 4 additions & 4 deletions contracts/src/reviews/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ export const reviewsContract = c.router(
search: z.string().optional().describe('도서 제목 또는 리뷰 작성자 닉네임'),
visibility,
}),
description: '전체 도서 리뷰 목록을 조회합니다.',
summary: '전체 도서 리뷰 목록을 조회합니다.',
responses: {
200: metaPaginatedSchema(reviewSchema),
},
},
post: {
method: 'POST',
path: '/',
query: z.object({ bookInfoId: bookInfoIdSchema.openapi({ description: '도서 ID' }) }),
description: '책 리뷰를 작성합니다.',
query: z.object({ bookInfoId: bookInfoIdSchema.openapi({ summary: '도서 ID' }) }),
summary: '책 리뷰를 작성합니다.',
body: contentSchema,
responses: {
201: z.literal('리뷰가 작성되었습니다.'),
Expand All @@ -50,7 +50,7 @@ export const reviewsContract = c.router(
method: 'PATCH',
path: '/:reviewsId',
pathParams: reviewIdPathSchema,
description: '책 리뷰의 비활성화 여부를 토글 방식으로 변환합니다.',
summary: '책 리뷰의 비활성화 여부를 토글 방식으로 변환합니다.',
body: null,
responses: {
200: z.literal('리뷰 공개 여부가 업데이트되었습니다.'),
Expand Down
6 changes: 3 additions & 3 deletions contracts/src/users/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ export const usersContract = c.router(
get: {
method: 'GET',
path: '/',
description: '유저 정보를 검색해 온다. query가 null이면 모든 유저를 검색한다.',
summary: '유저 정보를 검색해 온다. query가 null이면 모든 유저를 검색한다.',
query: searchUserSchema,
responses: {
200: searchUserResponseSchema,
Expand All @@ -28,7 +28,7 @@ export const usersContract = c.router(
post: {
method: 'POST',
path: '/',
description: '유저를 생성한다.',
summary: '유저를 생성한다.',
body: createUserSchema,
responses: {
201: createUserResponseSchema,
Expand All @@ -38,7 +38,7 @@ export const usersContract = c.router(
patch: {
method: 'PATCH',
path: '/:id',
description: '유저 정보를 변경한다.',
summary: '유저 정보를 변경한다.',
pathParams: userIdSchema,
body: updateUserSchema,
responses: {
Expand Down

0 comments on commit aa2e98d

Please sign in to comment.