- 블로그에 필요한 데이터 모델을 디자인하세요.
- 블로그 글(Article), 댓글(Comment)에 필요한 필드와 각 필드의 자료형이 무엇인지 정하세요. 스프레드시트로 정리되면 간편합니다.
- 필드
- Article
- title / string
- body / string
- author / string
- Comment
- author / string
- body / string
- Article
article 필드
comment 필드
2. 스프레드시트로 작성한 데이터 모델을 Sheety와 연동하세요.
sheety에서 new project 생성 후 스프레드시트 연동
GET 요청 테스트
3. Sheety를 통해 블로그에 필요한 API 명세 및 요청/응답을 확인하세요. 블로그에는 다음과 같은 기능을 필요로 합니다.
- 조회
- 블로그 글 전체 조회
- 특정 블로그 글 조회
- 모든 댓글 조회
- 특정 댓글 조회
- 생성
- 새 블로그 글 생성
- 새 댓글 생성
- 삭제
- 특정 블로그 글 삭제
- 특정 댓글 삭제
- 수정
- 특정 블로그 글 수정
- 특정 댓글 수정
4. API 문서화를 진행하세요.
- openapi.yaml
openapi: 3.0.0 info: description: '블로그 API 문서입니다.' version: '1.0.0' title: '블로그 API' components: schemas: Article: type: object required: - title - body - author properties: title: type: string example: '3월 15일의 TIL' body: type: string example: '오늘은 REST API를 배웠다!' author: type: string example: 'kimcoding' Comment: type: object required: - author - body properties: author: type: string example: 'kimcoding' body: type: string example: '열심히 공부하셨군요. 잘 보고 갑니다.' paths: /article: get: description: '블로그 글 전체 조회' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Article' post: description: '새 블로그 글 작성' requestBody: content: application/json: schema: $ref: '#/components/schemas/Article' responses: '200': description: '성공 응답' content: application/json: schema: type: object properties: article: $ref: '#/components/schemas/Article' /article/{id}: get: description: '특정 블로그 글 조회' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Article' put: description: '특정 블로그 글 수정' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Article' delete: description: '특정 블로그 글 삭제' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Article' /comment: get: description: '모든 댓글 조회' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Comment' post: description: '새 댓글 작성' requestBody: content: application/json: schema: $ref: '#/components/schemas/Article' responses: '200': description: '성공 응답' content: application/json: schema: type: object properties: article: $ref: '#/components/schemas/Comment' /comment/{id}: get: description: '특정 댓글 조회' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Comment' put: description: '특정 블로그 글 수정' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Comment' delete: description: '특정 댓글 삭제' responses: '200': # 당장은 성공 응답만 작성해도 무방합니다. description: '성공 응답' content: application/json: schema: type: object properties: article: type: array items: $ref: '#/components/schemas/Comment' servers: # Added by API Auto Mocking Plugin - description: Sheety url: <https://api.sheety.co/423a89c15480da268aee7fb0a069703c/restApiTest>
파일 정상 작동 확인
이번 것도 너무 어려웠다..
REST API의 정의도 잘 모르겠고 어떻게 해야하는 건지 감을 못잡겠어서 많이 헤맸다
오전에 팀원 셋이서 도저히 못하겠어서 각자 공부하고 오후에 다시 모이기로 했을 정도 .. ㅋㅋ ..
그래도 감 잡고 난 후에는 진도 쭉쭉 나갈 수 있었다
팀원분들께 생긴 에러도 해결해드리고, 나름 시간 맞춰서 끝낼 수 있었던..!
고생하고 나니까 그래도 꽤 이해가 돼서 뿌듯한 마음도 드는 ,, 그런 ,, 실습 ,,,,,,
'Code States > TIL' 카테고리의 다른 글
[0323] HTTP - HTTPS (0) | 2023.03.23 |
---|---|
[0323] HTTP - REST API 문서 작성 (0) | 2023.03.23 |
[0322] HTTP - 잘 설계된 HTTP API (REST API) (0) | 2023.03.22 |
[0322] HTTP - HTTP 헤더 (0) | 2023.03.22 |
[0322] HTTP - Cookie (0) | 2023.03.22 |