Restful API

CHM·2022년 6월 15일
0

Spring

목록 보기
13/26

Open API

  • 개방형 API
  • 프로그래밍에서 사용할 수 있는 개방되어 있는 상태의 인터페이스
  • 다음, 네이버, 통계청, 기상청 등에서도 데이터를 외부 응용 프로그램에서 사용할 수 있도록 Open API를 제공하고 있다.
  • 대부분은 API는 REST 방식으로 지원되고 있다.

REST API란??

  • HTTP와 URI 기반으로 자원에 접근할 수 있도록 제공하는 애플리케이션 개발 인터페이스
  • HTTP URI + HTTP Method
  • HTTP URI를 통해 제어할 자원(Resource)을 명시하고, HTTP Method(GET, POST, PUT, DELETE)를 통해 해당 자원을 제어하는 명령을 내리는 방식의 아키텍쳐
  • HTTP 프로토콜에 정의된 4개의 메서드들이 자원에 대한 CRUD Operation을 정의
    • POST : Create(Insert)
    • GET : Read(Select)
    • PUT : Update or Create
    • DELETE : Delete

Json

  • Client와 Server간의 HTTP 요청,응답에서 Json이 많이 사용되고 있다.
  • 경량의 데이터 교환 형식
  • 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 핸들링 할 수 있는 라이브러리 제공
  • key - value 구조(value들은 list 형식으로 저장 가능)
  • Jackson 라이브러리를 통해 Json과 Java 객체 사이의 변환이 가능하다.
    • Maven Repository의 dependency 코드를 이용해 Jackson 라이브러리 사용

RESTful service 개발 예졔

@ResponseBody, @RequestBody 사용

  • @ResponseBody : 객체로 반환을 하면 Json으로 바뀌어 Response
  • @RequestBody : Json으로 요청 보낸 것을 Java 객체로서 인식할 수 있게 해줌
// 글읽기
@GetMapping("/{articleId}")
@ResponseBody  
public Article viewDetail(@PathVariable String articleId) { 
   
   Article article = this.bbsService.viewArticleDetail(articleId);
   
   return article;
}

// 글쓰기
@PostMapping("/write")
@ResponseBody
public Article write(@RequestBody Article article) {
	
    Article a = article;
    
    return a;
}

Spring MVC 기반 RESTful 웹 서비스 구현 절차

  1. RESTful 웹서비스를 처리할 RestfulController 클래스 작성 및 Spring Bean 등록
  2. 요청을 처리할 메서드에 @RequestMapping, @RequestBody, @ResponseBody 어노테이션 선언
  • @RequestBody : HTTP Request Body(요청 몸체)를 Java 객체로 전달받음
  • @ReponseBody : Java 객체를 HTTP Reponse Body(응답 몸체)로 전달 가능
  1. Rest Client Tool(Postman 등)을 사용하여 메서드 테스트
  2. Ajax 통신을 하여 RESTful 웹서비스를 호출하는 HTML 페이지 작성

0개의 댓글