개발강의정리/Spring

[스프링 기반 REST API 개발] 1-1. REST API 및 프로젝트 소개

nineDeveloper 2019. 12. 27.
728x90

스프링 기반 REST API 개발

1. REST API 및 프로젝트 소개

포스팅 참조 정보

GitHub

공부한 내용은 GitHub에 공부용 Organizations에 정리 하고 있습니다

해당 포스팅에 대한 내용의 GitHub 주소

실습 내용이나 자세한 소스코드는 GitHub에 있습니다
포스팅 내용은 간략하게 추린 핵심 내용만 포스팅되어 있습니다

https://github.com/freespringlecture/spring-rest-api-study/tree/chap01-01-restapi

해당 포스팅 참고 인프런 강의

https://www.inflearn.com/course/spring_rest-api/dashboard

실습 환경

  • Java Version: Java 11
  • SpringBoot Version: 2.1.2.RELEASE

1. REST API

◼︎ API

Application ​Programming ​Interface

 

◼︎ REST

REpresentational ​State ​Tr​​ ansfer

  • 인터넷 상의 시스템 간의 상호 운용성(interoperability)을 제공하는 방법중 하나
  • 시스템 제각각의 ​독립적인​​ ​진화​​를 보장하기 위한 방법
  • REST API: REST 아키텍처 스타일을 따르는 API

 

◼︎ 그런 REST API로 괜찮은가

발표 영상 37분 50초

 

◼︎ REST 아키텍처 스타일 (​발표 영상 ​11분)

  • Stateless
  • Cache
  • Uniform Interface
  • Layered System
  • Code-On-Demand (optional)

 

◼︎ Uniform Interface (발표 영상 11분 40초)

  • Identification of resources
  • manipulation of resources through represenations
  • self-descrive messages
  • hypermisa as the engine of appliaction state (HATEOAS)

 

◼︎ 두 문제를 좀 더 자세히 살펴보자

▶︎ Self-descriptive message

  • 메시지 스스로 메시지에 대한 설명이 가능해야 한다
  • 서버가 변해서 메시지가 변해도 클라이언트는 그 메시지를 보고 해석이 가능하다
  • 확장 가능한 커뮤니케이션

▶︎ HATEOAS

  • 하이퍼미디어(링크)를 통해 애플리케이션 상태 변화가 가능해야 한다
  • 링크 정보를 동적으로 바꿀 수 있다​ (Versioning 할 필요 없이!)

 

◼︎ Self-descriptive message 해결 방법

 

◼︎ HATEOAS 해결 방법

  • 방법1: 데이터에 링크 제공
    • 링크를 어떻게 정의할 것인가? HAL
  • 방법2: 링크 헤더나 Location을 제공
728x90

댓글

💲 추천 글