Springboot

Spring boot실습 {RestFullAPI}

25G 2021. 6. 29. 15:34

RestFullAPI

웹을만들때 서버를 만드는 사람이 자원의 주소를 설정할때 서버를 만드는사람이 자기 마음대로 해 버리면 통일성이 없어서 작업하는데 소통의 문제가 있었다 그래서 이 문제를 해결하기위해 주소를 설정할 때 약속을 정했다.

데이터를 리턴하는 주소를 설정할땐 규칙이 있고 그것을 지켜줘야 통일성있는 협업을 할 수 있다

 

1. 소문자를 사용한다. 

주소에서 대소문자를 구분하므로, 카멜방식이 아닌 소문자를 사용하여 작성한다.

 

2. 언더바를 대신 하이픈을 사용한다.

가급적 하이픈의 사용도 최소화하며, 정확한 의미나 표현을 위해 단어의 결합이 불가피한 경우에 사용한다.

 

3. 마지막에 슬래시를 포함하지 않는다.

슬래시는 계층을 구분하는 것으로, 마지막에는 사용하지 않는다.

 

4. 행위는 포함하지 않는다.

행위는 URL대신 Method를 사용하여 전달한다.(GET, POST, PUT, DELETE 등)

 

5.파일 확장자는 URI에 포함시키지 않는다.

REST API에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI 안에 포함시키지 않습니다. Accept header를 사용하도록 한다.

 

6. 가급적 전달하고자하는 자원의 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 허용한다.

 

관계형DB는 기본적으로 테이블을 하나 들고있다 즉 db는 테이블의 모임이다. 

위테이블을 예로들자면 id에 있는 데이터는 컬럼  빨간색 네모처럼 가로로 한줄을 튜플또는 래코드라고 한다.근데 DB는 이 컬럼에는 오브젝트를 받지못한다. 왜냐하면 데이터베이스 규칙의 원자성이라는 규칙이 있다. 최소단위의 데이터 하나만 넣을수 있다는뜻이다. 

프로그래밍 언어는 오브젝트 저장이 가능한데 DB는 불가능하다.그래서 프로그래밍언어에서  db로 모델링할때는 어쩔수 없이 db에 프라이머리키만 저장을 해놓는것이다. 그래서 나중에 찾을때는 프라이머리키를 참조해서 db에서 찾는것이다.

위 과정에서 구조가 모순되는 단점이 생겨버린다.

 

그래서 위방법을 해결하기위해서 java에서 ORM 자바로 모델링해서 테이블을 만들고 던져주는것