MSA 환경에서 서버 개발을 하다보면 다른 서버의 로직을 사용해야 하는 경우가 종종 발생한다.
해결 방법은 다음과 같이 2가지 이다.
1. 공통 서브 모듈을 만들어 서버들이 공유하도록 만든다.
2. 다른 서버에 api 요청한다.
필자의 생각으로는, 1번 방법은 로직 사용이 빈번할 경우에 사용하며 2번 방법은 자주 사용하지 않을 때 사용하는 것이 좋다고 생각한다.
서버끼리 api 콜을 하게 되면 그만큼 부하가 늘어나기도 하고, 로직이 복잡한 경우에 디버깅도 어려울 뿐만 아니라 테스트 코드 작성도 까다로워지기 때문이다.
...
try:
headers = {
"ACCESS-TOKEN": request.META.get("HTTP_ACCESS_TOKEN"),
"Content-Type": "application/json"
}
url = 'http://127.0.0.1:8001/schedule/v1/student/schedule'
res = requests.post(url, data=json.dumps(request.data), timeout=5, headers=headers)
status_code = res.status_code
return status_code
except:
traceback.print_exc()
핵심 로직은 위와 같다.
기본적으로 requests 를 사용하며 다음과 같이 CRUD를 처리한다.
- res = requests.get(url)
- res = requests.post(url)
- res = requests.delete(url)
- res = requests.put(url)
응답 데이터 Response Content
status_code | 응답 상태 |
headers | headers정보 |
cookies | cookies정보 |
encoding | 데이터 인코딩 |
text | 'str 타입의 데이터 |
content | bytes 타입의 데이터 |
json() | dict 타입의 데이터 일 경우 사용 |
References
'Python' 카테고리의 다른 글
Python - with문 (feat.면접 회고) (0) | 2022.08.08 |
---|---|
Python - 커스텀 정렬 (0) | 2021.11.02 |
Python - 정렬 커스터마이징 (0) | 2021.10.11 |
Python - 얕은 복사, 깊은 복사 (0) | 2021.10.05 |
Python - list 특정 값 모든 원소 찾기 (0) | 2021.09.19 |