YOO
article thumbnail
Published 2023. 8. 8. 16:35
[IT용어] REST API Studying/Java

 

 

 

 

 

 

[ REST (REpresentational State Transfer) ]

: "분산 시스템"을 위한 HTTP 기반 소프트웨어 아키텍쳐

 

* 즉, 웹 어플리케이션, 다양한 언어, 모바일 어플리케이션, 다른 서버  (*다 HTTP 기반) 등 끼리 서로 통신할 수 있도록,

통역 역할을 해주는 API

 

참고) 분산시스템 : 하나의 시스템으로 보이는 독립된 컴퓨터들의 집합 -> 이를 위해 네트워크를 통한 컴퓨터 간의 통신이 필요

 

REST 구성 3가지 : 자원 , 행위 , 메시지

  1. 자원(resource) : 접근할 대상
  2. 메서드 : HTTP Method - GET(조회) , POST(생성) , PUT(수정), DELELTE(삭제)
    * 일반적으로는 GET, POST 방식을 사용하나, REST에서는 PUT, DELETE도 사용한다.                                                                          * GET: 정보만 받아옴 / POST : 값을 넣음(최초시에만) / PUT(UPDATE) : row에 많은 데이터를 변화시킬때 사용 / PACH : row에 1개 이하의 데이터를 변화시킬 때 사용 / DELETE : mater api key에 소속된 데이터를 삭제시킬 때 사용.
  3. 메시지

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)

          https://blog.wishket.com/soap-api-vs-rest-api-%EB%91%90-%EB%B0%A9%EC%8B%9D%EC%9D%98-%EA%B0%80%EC%9E%A5-%ED%81%B0-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%80/

          비전공자 문돌이가 설명하는 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

검색 태그