인프런 커뮤니티 질문&답변

임형준님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

HTTP API 설계 예시

HTTP API 설계 예시 - 컨트롤러, 컨트롤 URI 부분 동사를 직접 사용에 대한 질문입니다.

작성

·

71

0

[섹션 5. HTTP API 설계 예시] 에서 헷갈리는 부분이 있어서 질문 남깁니다.

참고하면 좋은 사이트로 https://restfulapi.net/resource-naming/

를 소개해주셔서 매우 잘 보았습니다. 감사합니다.

 

강의 후반부에 문서, 컬렉션, 스토어로 해결하기 어려운 부분은 동사를 직접 사용하시라고 하셨습니다. 하지만, 참고 사이트의 3. Do not Use Verbs in the URI 를 보면 http method가 동사로 이미 쓰이고 있기 때문에 컬렉션 뒤의 path에도 명사를 사용해야 된다고 주장합니다. 이 주장은 REST에서만 해당하는 내용입니다.

 

해당 강의의 동사를 직접 사용하라는 부분은 REST 를 고려하는게 아니라 일반적인 상황 혹은 엄밀하게 REST를 지키지는 않는 상황을 말씀하시는 건지 궁금합니다.

답변 2

0

임형준님의 프로필 이미지
임형준
질문자

어익후. 갑자기 깨달았습니다.

GET, POST만 지원되는 경우에 삭제하라같은 명령을 내릴 수 없으니까 그럴때는 동사처리하는 거군요.

 

신중하지 못했던 질문에 대해서 반성합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

임형준님의 질문에 대해서, 일반적으로 RESTful API 설계 원칙과 관련하여 동사의 사용에 대해 혼란스러울 수 있는 부분을 잘 이해합니다. RESTful API에서는 URI는 리소스를 표현하는데 중점을 두며, 해당 리소스에 대한 행동은 HTTP 메소드 (GET, POST, PUT, DELETE)로 표현하는 것이 일반적입니다. 따라서, 여러분이 언급하신 “3. Do not Use Verbs in the URI” 규칙은 RESTful 설계 원칙을 따르는 경우 주로 적용되는 지침입니다.

HTTP API vs RESTFUL API에 대해서

이 질문에서는 RESTful API의 정의와 설계 원칙에 대해 질문하였으며, 강의 내용 중 URI 설계에 대한 내용과 RESTful 설계 원칙에 대해 언급되었습니다. 본론으로, HTTP API 설계 시 명사를 사용하는 것이 이상적이나, 특정 상황에서는 동사를 사용할 수 있음을 언급하며, 이는 전통적인 RESTful 설계 원칙과 일부 다를 수 있음을 시사합니다.

결론

강의 내용에서 언급된 동사 사용의 경우, 엄격한 RESTful API 설계 원칙을 따르지 않는 상황 혹은 특정 동작을 명확히 표현해야 하는 경우에 대한 지침으로 이해할 수 있습니다. RESTful 설계에서는 가능한 한 HTTP 메소드를 통한 리소스의 동작 표현을 선호하지만, 모든 상황을 명사로만 표현하기 어려운 경우 혹은 효율성을 고려해야 하는 실제 개발 상황에서는 예외를 둘 수 있다는 의미로 받아들일 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.