Contents
1.주소 설계 규칙(RESTful API 기준)1.주소 설계 규칙(RESTful API 기준)
자원(Resource) 명사를 사용:1)
(2)
(3)
(4)
(5)
(6)
(7)
- 설명: URL은 조회할 자원을 명사로 표현합니다. 자원은 일반적으로 복수형으로 표현하는 것이 관례입니다.
- 예시:
/users
: 모든 사용자 자원을 나타냅니다./posts
: 모든 게시물 자원을 나타냅니다./products
: 모든 상품 자원을 나타냅니다.
- 자원 식별을 위한 경로 변수:
- 설명: 특정 자원을 식별하기 위해 URL 경로에 고유 식별자를 포함시킵니다.
- 예시:
/users/1
: ID가 1인 특정 사용자의 정보를 조회합니다./posts/10
: ID가 10인 특정 게시물의 정보를 조회합니다.
- 계층적 구조 표현:
- 설명: 자원 간의 관계를 계층적 구조로 표현하여 자원 간의 관계를 명확히 나타냅니다.
- 예시:
/users/1/posts
: ID가 1인 사용자가 작성한 모든 게시물을 조회합니다./categories/3/products
: 특정 카테고리(3)에 속한 모든 상품을 조회합니다.
- 필터링 및 검색:
- 설명: 쿼리 파라미터를 사용하여 특정 조건에 맞는 자원을 필터링하거나 검색합니다.
- 예시:
/posts?category=tech&sort=date
: 기술 카테고리의 게시물을 날짜순으로 정렬하여 조회합니다./products?price_min=100&price_max=500
: 가격이 100에서 500 사이인 상품을 조회합니다.
GET 요청과 DB SELECT 요청의 관계
- GET 요청:
- 서버에 데이터를 조회하기 위해 클라이언트가 보냅니다. GET 요청은 서버의 데이터를 변경하지 않고, 데이터베이스에서 데이터를 읽어오는 작업에 주로 사용됩니다.
- DB SELECT 요청:
- GET 요청이 수신되면, 서버는 해당 요청에 따라 데이터베이스에서
SELECT
쿼리를 실행하여 데이터를 조회합니다. 이 과정에서 위의 주소 설계 규칙이 적용됩니다.
GET 요청의 예시
1) /boards?title=제목1
- 설명:
title
이 유니크하지 않기 때문에, 특정 제목에 해당하는 모든 게시물을 조회합니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM board_tb WHERE title = '제목1';
- 용도: 특정 제목을 가진 모든 게시물을 필터링하여 조회할 때 사용합니다.
(2) /boards?title=제목1&content=내용1
- 설명:
title
과content
의 조합을 통해 게시물을 필터링하여 조회합니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM board_tb WHERE title = '제목1' AND content = '내용1';
- 용도: 제목과 내용이 일치하는 게시물을 조회할 때 사용합니다.
(3) /boards/1
- 설명:
id
가1
인 특정 게시물을 조회합니다.id
는 보통 고유 식별자(PK)입니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM board_tb WHERE id = 1;
- 용도: 특정 게시물의 상세 정보를 조회할 때 사용합니다.
(4) /boards
- 설명: 모든 게시물을 조회합니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM board_tb;
- 용도: 전체 게시물 목록을 조회할 때 사용합니다.
(5) /users/1/boards
- 설명:
id
가1
인 사용자가 작성한 모든 게시물을 조회합니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM board_tb WHERE user_id = 1;
- 용도: 특정 사용자가 작성한 게시물 목록을 조회할 때 사용합니다.
(6) /users/1/content
- 설명:
id
가1
인 사용자의 특정 콘텐츠 정보를 조회합니다. 이 경로가 정확히 어떤 데이터를 반환하는지 명확하지 않지만, 사용자 관련 데이터를 조회할 때 사용됩니다.
- SQL 쿼리 (예시):
sql코드 복사
SELECT content FROM user_tb WHERE id = 1;
- 용도: 특정 사용자의 콘텐츠(예: 작성한 글이나 소개 정보 등)를 조회할 때 사용합니다.
(7) /boards/2/comments
- 설명:
id
가2
인 게시물에 달린 모든 댓글을 조회합니다.
- SQL 쿼리:
sql코드 복사
SELECT * FROM comments_tb WHERE board_id = 2;
- 용도: 특정 게시물에 달린 모든 댓글을 조회할 때 사용합니다.
결론
RESTful API에서 GET 요청은 데이터베이스에서 데이터를 조회하기 위한 방법으로 사용되며, 주로
SELECT
쿼리로 처리됩니다. URL 설계는 자원을 명확하게 표현하고 식별할 수 있도록 RESTful 원칙을 따르며, 자원 명사형 경로, 경로 변수, 계층적 구조, 그리고 쿼리 파라미터를 사용해 설계합니다. 이러한 설계 원칙을 따르면 API는 직관적이고 확장 가능하며 유지 관리하기 쉬워집니다.Share article