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

노트북은맥북이지님의 프로필 이미지
노트북은맥북이지

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

Spring Boot Project 생성

Restful api 검색 조건 설계 시 uri 를 어떻게 해야 할까요?

작성

·

999

0

안녕하세요 강사님. 강의 듣다가 Rest api 설계시 궁금한 점이 있어 여쭤봤습니다.

rest api 설계 시 조회 부분에서 대부분 업무 로직이 사용자 조건 검색 같은게 많은데요 예를들어 사용자의 나이와 이름 등을 입력 받아 조회하는 등의 검색 조건을 나열해야 한다면 url 설계를 어떻게 해야 할까요?

 

 

 

답변 2

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

REST api 설계 시, 조회에 관련 된 부분은 필터링에 사용 될 조건을 포함하여 Http의 GET 메소드로 처리하는 것이 좋다고 생각됩니다. 실제 GET method의 의미도 서버로부터 데이터를 가져오는 역할을 하기 때문에, 데이터를 요청하는 쪽에 필요한 필터링의 정보(조건 등)를 파라미터로 전달하여 서버로부터 처리 결과를 받아 오면 될 것 같습니다. GET 메소드의 성격 상 전달되는 파라미터는 key=value 형식으로 전달하고, URL에 노출되지 않아야 하는 정보가 있다면, Request Header에 정보를 포함해 볼 수도 있습니다. 그 외 구축하시는 서비스의 제약사항이나 규칙에 따라 부득이 하게 POST 와 같은 방법으로도 데이터를 처리할 수도 있는데, 이때는 Request Body를 통해 필터링에 필요한 파라미터 정보를 전달해 볼 수 있습니다.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.
노트북은맥북이지님, RESTful API를 설계할 때 검색 조건을 URI에 포함시키기 위해서는 일반적으로 쿼리 스트링(Query String)을 사용합니다. 예를 들어, 사용자의 나이나 이름을 조건으로 검색할 경우, 다음과 같은 형태의 URI를 설계할 수 있습니다:

GET /users?age=30&name=홍길동

이 URI에서 ? 뒤에 나오는 부분은 쿼리 스트링으로, 여기에 각 검색 조건을 키=값의 형태로 나열하게 됩니다. & 기호를 사용해서 여러 검색 조건을 연결할 수 있습니다.

또한 RESTful 원칙에 따라 리소스에 대한 검색이나 필터링은 URI 경로(path)가 아니라 쿼리 스트링을 통해 표현하는 것이 좋습니다. 이렇게 하면 URI의 단순함과 일관성을 유지할 수 있고, 서버 측에서도 이러한 쿼리 스트링을 파싱하여 필요한 데이터를 검색하는 로직을 구현할 수 있습니다.

RESTful API 설계에 대한 더 깊이 있는 이해를 위해서는 Spring 관련 강의 뿐만 아니라 다양한 웹 개발 관련 자료를 참고하시는 것을 추천드립니다.

노트북은맥북이지님의 프로필 이미지
노트북은맥북이지

작성한 질문수

질문하기