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개의 댓글

관련 채용 정보