[ REST (REpresentational State Transfer) ]
: "분산 시스템"을 위한 HTTP 기반 소프트웨어 아키텍쳐
* 즉, 웹 어플리케이션, 다양한 언어, 모바일 어플리케이션, 다른 서버 (*다 HTTP 기반) 등 끼리 서로 통신할 수 있도록,
통역 역할을 해주는 API
참고) 분산시스템 : 하나의 시스템으로 보이는 독립된 컴퓨터들의 집합 -> 이를 위해 네트워크를 통한 컴퓨터 간의 통신이 필요
REST 구성 3가지 : 자원 , 행위 , 메시지
- 자원(resource) : 접근할 대상
- 메서드 : HTTP Method - GET(조회) , POST(생성) , PUT(수정), DELELTE(삭제)
* 일반적으로는 GET, POST 방식을 사용하나, REST에서는 PUT, DELETE도 사용한다. * GET: 정보만 받아옴 / POST : 값을 넣음(최초시에만) / PUT(UPDATE) : row에 많은 데이터를 변화시킬때 사용 / PACH : row에 1개 이하의 데이터를 변화시킬 때 사용 / DELETE : mater api key에 소속된 데이터를 삭제시킬 때 사용. - 메시지
ex) " 상품명이 진라면인 상품을 생성한다” 라는 호출이 있을 때,
“상품”은 생성되는 자원 (resource)
“생성한다”라는 행위는 메서드 (post)
"상품명이 진라면인 상품"은 메시지 ({"name":"진라면","price":"1000"})
HTTP POST , http://localhost/products/
{
"products": {
"name":"진라면",
"price":"1000"
}
}
[ REST API ]
: REST 기반 서비스 API
어플리케이션 간의 데이터 통신을 위한 어플리케이션 프로그래밍 인터페이스
> RESTful : REST API 제공하는 웹서비스 시스템을 지칭 , "A 서비스 시스템은 'RESTful' 하다"
> RestTemplate : Spring에서 제공하는 REST API Server와의 HTTP 통신을 위한 객체
서버와 서버간의 연동을 위해 사용된다
> Http Method : get , post , put , delete 을 지원하는 메서드를 제공한다
- getForEntity()
- postForObject()
- put()
- delete()
JSONObject 형식을 Map<String, String>형식으로 형변환 방법.
/**
* @param JSONObject
* @apiNote JSONObject를 Map<String, String> 형식으로 변환처리.
* @return Map<String,String>
* **/
public static Map<String, Object> getMapFromJsonObject(JSONObject jsonObj) {
Map<String, Object> map = null;
try {
map = new ObjectMapper( ).readValue(jsonObj.toString( ), Map.class);
} catch (JsonParseException e) {
e.printStackTrace( );
} catch (JsonMappingException e) {
e.printStackTrace( );
} catch (IOException e) {
e.printStackTrace( );
}
return map;
}
Map 형식의 데이터를 JSONObject 형식으로 형변환 방법.
/**
* @param Map<String, Object>
* @apiNote Map<String, Object>를 JSONObject로 변환처리.
* @return JSONObject
* **/
public JSONObject convertMapToJson(Map<String, Object> map) {
JSONObject json = new JSONObject( );
String key = "";
Object value = null;
for(Map.Entry<String, Object> entry : map.entrySet( )) {
key = entry.getKey( );
value = entry.getValue( );
json.put(key, value);
}
return json;
}
출처 : https://www.tibco.com/ko/reference-center/what-is-an-api-application-program-interface
[REST API] REST / REST API 개념과 적용 + 코드 예제 (SpringBoot 기반) (tistory.com)
[Spring] - @JsonProperty, @JsonNaming (tistory.com)
비전공자 문돌이가 설명하는 REST API 란? feat. 생활코딩 (tistory.com)
'Studying > Java' 카테고리의 다른 글
RequestBody vs RequestPart vs RequestParam vs ModelAttribute (0) | 2023.08.10 |
---|---|
RequestDispatcher (0) | 2023.08.10 |
[IT용어] JWT(Json Web Token) (0) | 2023.08.08 |
[IT 용어] 암호화, 복호화 (0) | 2023.08.08 |
이클립스 파일명 전체 바꾸기 (0) | 2023.08.04 |