본문 바로가기
TIL

104. TIL 2022.12.30

by 새싹_v 2022. 12. 30.
728x90


 

TIL

📌
오늘 한 일

이력서 작성

오늘은 캠프수료하고 다음날이다. 평소 같았으면 9시에 일어났겠지만 오늘은 늦잠 자고 빈둥거리다가 2시부터 이력서를 작성했다. 게더에 사람들이 있을까 하고 들가 봤는데 꽤 많은 사람들이 있었다. 다들 이력서 작성하는 거 같기도...

이력서를 작성하기전에 캠프에서 제공해준 이력서 가이드라인, 우수 이력서, 이력서 템플릿등 제공해준 자료를 토대로 일단 작성을 했다. 이력서를 잘 작성했는지는 모르겠다. 오늘은 한 50% 정도 작성을 했다. 작성하면서 지금까지 했던 프로젝트를 다시 한번 보면서 내가 어떻건 담당했고 내가 어떤 코드를 작성했는지 다시 한번 보게 되었다. 보면서 이 코드는 왜 이렇게 작성했는지도 생각해 볼 수 있는 기회였다. 난 모든 프로젝트에서 웹사이트 템플릿을 만들거나 crud, 좋아요, 검색기능을 구현했다. 지금 와서 보니깐 여러 가지 해볼걸이라는 생각도 든다. 이력서에 쓸게 없어서 작성하기 힘들었음.

내일 이력서특강이 있는데 그걸 들으면서 다시한번 내 이력서를 다듬어야 할 거 같다.  

 

 

스웨거(swagger)란?

👉 스웨거란?

REST API의 문서화를 위해 사용하는 것
간단한 설정으로 프로젝트의 API목록을 웹에서 확인 및 테스트 가능하게 하는 라이브러리
👉 사용이유!

협업을 진행하거나 이미 만들어져 있는 프로젝트에 대해 유지보수를 진행하게 된다면 구축되어 있는 API가 어떤 스펙을 갖고 있는지 알아야 한다.
스펙을 정리하기 위해 API 문서화 작업을 해야 하는데, 만약 직접 손으로 하게 되는 경우 API를 개발하기 전에 API의 명세와 문서를 작성하고, API가 수정될 때마다 문서도 같이 수정해야 하는 번거로움이 발생한다.
이런 불편함을 조금이나마 줄여주기 위해 개발된 것이 Swagger 프레임워크이다.
api 문서 자동화(swagger)

 

사용방법 (Django)

1. 라이브러리 설치

pip install drf-yasg
pip install rest_framework

 

2. settings.py에 drf_yasg 추가

#settings.py

INSTALLED_APPS = [
    ...
    'drf_yasg',
    'rest_framework',
    'django.contrib.auth'
]

 

3. 메인app > urls.py  스웨거를 보기 위한 url 설정

#메인app > urls.py

from django.urls import path, include

from rest_framework import permissions
from drf_yasg.views import get_schema_view
from drf_yasg       import openapi

schema_view = get_schema_view(
    openapi.Info(
        title="프로젝트 이름(예: humanscape-project)",
        default_version='프로젝트 버전(예: 1.1.1)',
        description="해당 문서 설명(예: humanscape-project API 문서)",
        terms_of_service="https://www.google.com/policies/terms/",
        contact=openapi.Contact(email="이메일"), # 부가정보
        license=openapi.License(name="mit"),     # 부가정보
    ),
    public=True,
    permission_classes=[permissions.AllowAny],
)

urlpatterns = [ #스웨거를 보기위한 url 설정
    path(r'swagger(?P<format>\.json|\.yaml)', schema_view.without_ui(cache_timeout=0), name='schema-json'),
    path(r'swagger', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    path(r'redoc', schema_view.with_ui('redoc', cache_timeout=0), name='schema-redoc-v1'),
    # 이 아랫 부분은 우리가 사용하는 app들의 URL들을 넣습니다.
    path('app이름', include('app이름.urls'))
]

 

4. API에 @Swagger auto Schema 추가 

- views.py

from drf_yasg.utils import swagger_auto_schema

@swagger_auto_schema(
  operation_description="회원관리_유저 정보 조회",
  operation_summary="회원관리_유저 정보 조회",
  operation_id='메인_회원관리_01',
  tags=['메인_회원관리'],
  query_serializer=ManagementUserSerializer,
  responses={
  ... 중략

-operation_description : API 설명을 작성하는 부분

-operation_summary : API 간단한 타이틀, 주제를 적는 부분

-operation_id : API를 스웨거에서 구분하는 고윳값

-tags : 그룹화하는 것

-query_serializer / request_body : 시리얼라이저를 사용하는 경우 작성한 시리얼라이저를 기입해주면 된다.

-response : API의 응답값을 작성해주면 된다.(ex response = {201: "성공", 400: "인풋값 에러", 401: "인증 에러", 500: "서버 에러"},

 

5. Swagger 접속 확인

설정이 완료되었으면 http://127.0.0.1:8000에 접속해서 확인하면 된다.

728x90

댓글