본문 바로가기
항해99/실전 WIL | TIL

[TIL-013] REST API란 무엇인가?

by junvely 2023. 4. 25.

Today목표 : 4/24일 REST API란 무엇인가


REST API, RESTful 하다?

REST API란 무엇인가? 항상 채용 사이트에 들어가보면 개발자 채용 공고에서 볼 수 있었던 단어가

REST API사용, RESTful API... RESTful하게 개발하는 것을 지향하는 등 의 말들을 자주 볼 수 있었다.

오늘은 REST가 무엇인지, RESTful하다는게 무엇인지 공부했다.

 

1. REST API 

URI를 통해 정보의 자원을(only 자원만을) 표현하고, 자원의 행위는 HTTP Method로 명시한다.

RE : Representational  /  S : State  /  T :Transfer의 약자 => '상태 이동을 표현/나타낸다'
=> 어떤 자원에 대해 CRUD를 진행할 수 있게 HTTP Method(GET, POST, PUT, DELETE)를 사용하여 요청을 보내는 것. 이 때, 요청을 위한 자원은 특정한 형태로 표현된다.

즉, 어떤 자원에 대해 CRUD를 진행할 수 있게 HTTP Method행동을 사용해 요청을 보내는 것을 말한다.

자원이란, URI를 의미하고 / 행위란, HTTP Method를 => 표현한다.

 

2. URI 사용규칙

1) 명사, 소문자=> 동사x
2) 명사는 복수형
3) URI 마지막은 / 포함x
4) URI는 언더바x 하이픈 사용 -
5) 파일의 확장자를 표시x

다음은 URI개념과 관련하여 이전에 작성한 포스팅이다.

 

[Web] URL과 URI의 차이점

✨URL과 URI의 차이점 - URI : Uniform Resource Identifier => ‘Uniform(통일) / Resource(자원) / Identifier(식별자)’ - URL : Uniform Resource Locator => ‘Uniform(통일) / Resource(자원) / Locator(위치)’ URL => 네트워크상에서

junvelee.tistory.com

 

[Web] URL과 도메인의 차이, URL의 구조

🙌 URL과 도메인의 차이 - 도메인(Domain) : 서버 이름은 도메인이나 IP주소로 입력 가능하다. 사용자가 매번 IP주소를 입력하기는 쉽지 않다. IP주소를 변환시켜 줄 네임 서버가 도메인을 뜻한다.IP

junvelee.tistory.com

 

 

 

3. RESTful하지 못하는 경우 

- REST API의 까다로운 조건을 만족시킨 통신 설계 상태

- 누구나 이해할수 있는, 사용이 쉬운 REST API =>❗RESTful하지 못하는 경우 => CRUD를 모두 POST로 하는 경우 x

- URI에 행위(Method)가 포함되는 경우 =>❗Delete/usersDelete/1 x

 

 

4. Path Variable vs Query Parameter

REST한 개발을 하다 보면, GET method를 이용하여 데이터를 가져올 때 등의 경우에서 Path Variable과 Query Parameter에 대한 이야기는 항상 같이 나온다.

(1) Path Variable 

경로 자체에 변수 사용 => 전체 또는 특정 데이터를 식별하기 위해 사용

/users/10 => 10

(2) Query Parameter => 데이터를 정렬 or 필터링 할때 적합하다.

/users?user_id=10 => user_id

 

 

❗JSX에서 return문 사용 시 주의할 점

JSX에서 return문 안에 코드 작성 시, 최상단이 아니라 그 내부에서 return문을 사용하더라도 항상 return문 내부에서는 여러 문 작성 시에는 ( ) 괄호로 감싸주어야 하고, 그 return문 내부의 최상위 태그는 항상 한 개만 존재해야 한다. 아니면 에러 발생.. 왜 발생하는 에러인지 이해하는데 한참 고민했다.

return (
    <div>
      {console.log(data)}
      {data.map((a) => {
        return ( //❗주의
          <>
            <p>{a.title}</p>
            <p>{a.title}</p>
            <p>{a.title}</p>
          </>
        );
      })}
    </div>
  );

 

 

 

알게된 점,

1. REST가 무엇인가? RESTful하게 개발한다는 의미

2. URI의 사용규칙, REST와의 관계

3. Github과 vscode계정을 연결해서 repo에 명령어 없이 클릭으로 commit이 가능하다.

4. JSX문의 return부에서 다음과 같이 여러개의 태그 등을 return할 경우 ( ) 괄호안에 작성해 주어야 한다. 아니면 에러 발생.