Web

HTTP 메서드가 가지는 의미는 ?

필립 2024. 6. 21. 00:59

오늘은

부트 캠프를 진행하며 새로운 팀 프로젝트를 시작하고 오늘로써 마쳤습니다. 

돌이켜보던 중 API 명세서를 보며 든 질문을 작성해보겠습니다.

 

작성한 API 명세서입니다. 

해당 명세서를 보며 문득 현재 로그아웃 API는 저장된 리프레쉬 토큰을 삭제하는 작업을 수행하는 데

POST 메서드로 작성되는 게 옳은 걸까? 라는 생각이 들었습니다. 

  1. HTTP 메서드는 실제 기능하는가 ? 
    HTTP 메서드는 서버에 요청하는 동작에 의미를 나타내는 동시에, 주어진 리소스에 수행해야 될 동작을 지정하는 방법입니다.
    그렇다면 GET, DEL 와 같은 메서드를 보내고 리소스를 추가하는 동작을 요청하면 API는 동작하지 않게 되는 것일까요? 
  2. 그럼에도 동작한다면 ? 
    HTTP 메서드는 명시적인 의미만을 가지는 것인지, 혹은 동작은 하더라도 제가 모르는 다른 부분에서 문제가 생기는 것인지
    궁금했습니다.
  3. 동작하지 않는다면 ? 
    어떤 기준으로 메서드를 사용해야 할까요 ? 

해당 질문들을 해결하기 위해 우선 테스트를 진행해 보았습니다. 

이번 프로젝트에서 사용한 API입니다. 해당 API에서 메서드를 DELETE로 바꾼 뒤 요청을 보내보겠습니다. 

 

Insomnia로 테스트를 진행합니다.
결과, 회원가입에 성공했습니다.

회원가입에 기존과 같이 성공했습니다. 

데이터베이스에는 어떻게 저장이 되었을까요 ?

dbeaver를 사용하였습니다.

데이터베이스에도 정상적으로 저장되었습니다. 

해당 아이디로 로그인을 진행해 보겠습니다.

 

로그인 API도 정상적으로 동작했습니다. 

로그인 API 또한 DELETE 메서드로 설정해두고 요청을 보내보았습니다.

 

똑같이 로그인이 진행되었고 데이터베이스에도 별다른 변화는 없었습니다. 

 

마무리

오늘은 직접 동작에 맞지 않는 메서드를 설정하여 요청을 보내보는 테스트를 진행했습니다. 

기능은 기존과 다를 것 없이 진행되었고 이후에 작성하는 글에서 이런 요청들이 어떤 문제를 야기할 수 있는지

작성해 보도록 하겠습니다. 

'Web' 카테고리의 다른 글

동적 타입 언어와 정적 타입 언어  (0) 2024.06.26
HTTP 메서드와 상태코드  (0) 2024.06.24
웹소켓이란  (0) 2024.06.21
redis 연결 시 await 설정  (0) 2024.06.20
Redis란 ?  (0) 2024.06.19