처음부터 차근차근

RESTful과 OpenAPI 본문

프로그래밍/Swift

RESTful과 OpenAPI

_soyoung 2022. 5. 16. 00:38
반응형

RESTful

= Representational State Transfer

REST는 HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.

이 REST 설계 지침을 따르는 웹 서비스를 RESTful이라 한다.

 

HTTP 기반의 소프트웨어 아키텍처 스타일이고, 로이 필딩(Roy Fielding)이 2000년에 UC 어바인에서 "Architectural Styles and the Design of Network-based Software Architectures"라는 박사 학위 논문에 REST를 정의했다.

 

 

RESTful API 와 HTTP 전송방식

일반적으로 서버에 요청하는 정보의 타입은 쓰기(Create), 읽기(Read), 수정(Update), 삭제(Delete)

네가지의 첫글자를 합쳐서 CRUD라고 부름.

 

서버에서 데이터를 받으려면 서버에서 제공하는 명세에 따라 요청해야 함

URI 구성권고에 따르면 RESTful API 구성을 위한 URI에는 정보의 분류 체계만 포함되어야지, 정보를 어떻게 다룰 것인가 하는 동작에 관한 명세는 포함하지 않을 것을 권고함

(URI 어떤 계층의 어떤 데이타라는 정보만 기재할뿐, 그 데이타를 읽을지 쓸지 등에 대한 액션 구분은 URI 에 나타내지 않음 -> HTTP 메소드를 사용하여 이같은 액션을 구분)

RESTful API 형식으로 데이터를 제공하면, 서버에서 작성해 놓은 URI 명세에 따라 원하는 요청을 식별할 수 있도록 URI 를 구성하여 보내면 됨

응답형식은 XML과 JSON을 지원

 

RESTful API 에서 HTTP 메소드의 종류

메소드(전송방식) 목 적
POST 리소스를 create
GET 리소스 정보 read
PUT 리소스 update
DELETE 리소스 delete

 

 

REST vs SOAP

SOAP는 프로토콜이지만, REST는 프로토콜이 아니라는 점이 주요 차이점이다.

 

1. REST 방식 요청 URL : 

http://www.kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json 요청

parameter : GET 방식으로 호출  ex) ?day=20220508

 

2. SOAP 방식 : 

http://www.kobis.or.kr/kobisopenapi/webservice/soap/boxoffice   

 

 

XML(Extensible Markup Language)

시작 - 끝 태그 : <element></element>
빈요소 태그 : <element/>
파싱(Parsing) : XML데이터를 추출하여 분석하는 것
파서(parser) : 파싱을 처리하는 모듈
장 : 플랫폼 독립적
단 : 마크업 태그를 사용하므로 데이터량이 큼

 

 

JSON(JavaScript Object Notation)

XML의 단점을 극복하기 위해 만들어진 경량의 데이터 교환 형식
사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성하기도 용이하다.
프로그래밍 언어로부터 독립적이다.(그래서 데이터 교환에 많이 사용함)


JSON에 사용되는 데이타 구조 두가지

  • 집합구조 : 여러가지 속성을 다양하게 정의할 수 있는 집합구조      ex) { 키: 값, 키:값, …. }  명칭 - JSON 객체(object) 
  • 리스트구조 : 비슷한 상황이 반복되는 리스트 구조      ex) [ 객체1, 객체2, …..]  명칭 - JSON 배열

둘 다 collection 타입임

 

 

Open API

일부 웹사이트에서 SOAP 프포토콜이나 RESTful 형식을 사용하여 공공 컨텐츠를 제공하는데 이것을 오픈 API라고 한다.

 

Open API 제공하는 곳

 - 공공데이터 포털 (http://www.data.go.kr )

 - 서울 열린 데이터 광장 ( https://data.seoul.go.kr/)

 - 네이버 Open API ( https://developers.naver.com/main/)

 - 카카오 개발자 서비스 ( https://developers.kakao.com)

 - 11번가 Open API Center (https://openapi.11st.co.kr/openapi/OpenApiFrontMain.tmall)

 - YouTube Data API ( https://developers.google.com/youtube/v3/getting-started?hl=ko)

 

Open API를 이용한 앱 개발 단계

1. 원하는 정보를 제공하는 웹 서비스와 사용할 Open API 선정

2. Open API 사용을 위한 신청과 인증키 발급

3. 네트워크를 통해 데이터 요청

4. 받은 데이터를 파싱하여 앱에서 사용

 

 

 

출처 : iOS프로그래밍실무(22-1학기)한성현교수 강의 내용 변형 및 요약

반응형

'프로그래밍 > Swift' 카테고리의 다른 글

OpenAPI 사용해서 앱만들기  (0) 2022.05.19
TableView  (0) 2022.05.13
Swift 용어 정리  (0) 2022.05.09
간단한 앱 만들기 실습  (0) 2022.04.16
Swift 문법 복습5  (0) 2022.04.11
Comments