코딩딩/Spring
API
전낙타
2023. 7. 4. 13:35
API란?
api는 json이라는 데이터 포멧으로 클라이언트에게 데이터를 전달하는 방식 요즘 많이 쓰인다
helloString 메서드를 생성해준다. 여기서 주의해야 할 점은 GetMapping 외에 ResponseBody 를 추가해줘야 한다
ResponseBody는 http의 body 부분에 해당 데이터를 직접 넣어준다는 뜻이다
Http 헤더와 바디에 대한 부가 설명
HTTP(하이퍼텍스트 전송 프로토콜)는 웹 서버와 클라이언트 간에 통신하기 위해 사용되는 프로토콜입니다. HTTP 요청과 응답은 일반적으로 헤더와 바디 두 부분으로 나뉘어집니다.
- 헤더(Header): HTTP 헤더는 요청이나 응답에 대한 메타데이터 정보를 포함합니다. 일반적으로 헤더는 다음과 같은 정보를 제공합니다:
- 요청 헤더: 클라이언트가 서버에게 요청하는 메타데이터 정보를 포함합니다. 예를 들어, 요청하는 자원의 경로, 요청 방식(GET, POST 등), 헤더 필드(사용자 에이전트, 쿠키 등)를 포함할 수 있습니다.
- 응답 헤더: 서버가 클라이언트에게 응답하는 메타데이터 정보를 포함합니다. 예를 들어, 응답의 상태 코드(200 OK, 404 Not Found 등), 응답의 MIME 타입(텍스트, 이미지 등) 등을 포함할 수 있습니다.
- 바디(Body): HTTP 요청의 바디는 요청에 대한 실제 데이터를 포함합니다. 바디는 POST, PUT 등의 요청 방식에서 주로 사용되며, 클라이언트가 서버에게 전송하고자 하는 데이터를 담습니다. 예를 들어, JSON 형식의 데이터, 파일 업로드 등이 바디에 담길 수 있습니다.
- HTTP 요청의 경우, 헤더와 바디는 요청 메시지의 일부로 전송됩니다. 응답의 경우, 헤더와 바디는 응답 메시지의 일부로 전송되며, 클라이언트는 헤더를 통해 응답의 상태를 확인하고 바디를 통해 반환된 데이터를 처리합니다.
- 헤더(Header): HTTP 헤더는 요청이나 응답에 대한 메타데이터 정보를 포함합니다. 일반적으로 헤더는 다음과 같은 정보를 제공합니다:


문자를 그대로 전달해서 html 태그가 단 한개도 없는 모습을 볼 수 있다.

이런식으로 사용할 일은 거의 없다고 한다.
보통 api 방식을 사용할때는 json 형식의 데이터를 전달하는데 이를 코드로 나타내면 다음과 같다

해당 코드는 hello라는 객체를 return하고 있으며 setName 메서드를 사용해서 name값을 지정해주고 있다.


json 방식으로 호출이 완료된 모습이다
여기서 json이란 key와 value로 이루어진 데이터를 뜻한다.
json 방식은 심플하고 가벼워 가장 많이 사용된다.
웹 브라우저 (hello-api)→ 내장 톰켓서버 → helloController →ResponseBody 확인 → 객체 return : (name:spring) → HttpMessageConverter → json 데이터 웹브라우저에 전달