API,Restful API,json 데이터 형식

장민영·2022년 12월 5일

API : (애플리케이션 프로그래밍 인터페이스) 프로그램들이 서로 상호작용하는 것을 도와주는 매개체이다.
-> api의 역할은 ?
1. 서버와 데이터베이스에 대한 출입구 역할을 한다. : 데이터 베이스에는 개인 정보들이 저장되는데 아무나 접근하지 못하게 허용된 사람들에게만 접근성을 부여해줄 수 있다.
2. 애플리케이션과 기기가 원활하게 통신할 수 있도록 해준다. : 스마트폰 어플이나 프로그램의 데이터를 원활히 주고받을 수 있도록 도와주는 역할을 한다.
3. 모든 접속을 표준화 해준다. : 디바이스, 운영체재 등과 상관없이 누구나 동일한 엑세스를 얻을 수 있다.
-> api의 유형은
1. Private api : 내부 api로 개발자가 자체 제품과 서비스를 개선하기 위해 내부적으로 발행하는 것을 말하기에 3자에게 노출 되지 않는 api이다.
2. Public api : 개방형 api로 모두에게 공개되어 누구나 제한 없이 사용할 수 있다.
3. Partner api : 데이터 공유에 동의하는 특정인들만 사용할 수 있다. 비즈니스 관계에서 사용되는 편이고 파트너 회사 간에 소프트웨어를 통합하기 위해 사용된다.
-> api의 장단점
장점 : 모든 접속을 표준화하기 때문에 디바이스/운영체제등과 상관없이 조건만 맞다면 누구나 동일하게 사용이 가능하다. 그리고 기본적으로 api를 만들어 놓으면 또 개발할 필요없이 손쉽게 이용할 수 있다.
즉, 수레바퀴를 만들때마다 또 재발명할 필요가 없다는 말이다. 이런것을 데이터 접속의 표준화 편의성이라 말할 수 있다.
단점: http게이트웨이는 해커의 타겟 대상이 될 수 있다는 점이다. 디도스 공격 같은 것이 취약하다고 할 수 있다.

Restful (Representational State Transfer) API : 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스이다.
: 일반적으로 REST 라는 아키텍처를 구현하는 웹 서비스를 나타내기 위해 사용되는 용어이다. "REST API"를 제공하는 웹 서비스를 "RESTful"하다고 할 수 있다. REST 원리를 따르는 시스템은 RESTful이란 용어로 지칭된다.
RESTful의 목적
1. 이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것이다.
2. RESTful한 API를 구현하는 근복적인 목적이 성능 향상에 있는 것이 아니라 일관적인 컨벤션을 통한 API의 이해도 및 호환성을 높이는 것이 주 동기이며 성능이 중요한 상황에서는 굳이 RESTful한 API를 구현할 필요는 없다.
RESTful 하지 못하다고 말하는 경우
1. CRUD 기능을 모두 POST로만 처리하는 API
2. route에 Resource(CRUD method), id 외의 정부가 들어가는 경우 (studends/updataName)

RESTful 조건
자원,행위,표현이 들어가면 된다.
행동이 들어가면 안된다. sendAuthCode (send가 행동이기 때문에 들어가면 안된다)
URI 는 소문자로 적어야하고 _ 가 들어가면 안되고 추가적으로 더 있다.

하지만 Restful에 대해 정확하게 이해하려면 REST를 먼저 알면 좋습니다.
REST 는 웹에서 데이터를 전송하고 처리하는 방법을 정의한 인터페이스 입니다. 모든 데이터 구조와 처리방식은 REST에서 URL을 통해 정의가 됩니다. 그렇기 때문에 매우 직관적으로 이해할 수 있습니다.
HTTP URI를 통해 자원(CRUD)을 명시하고 HTTP Method (POST,GET,PUT,DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미합니다.

여기 위에서 언급한 자원이란 해당 소프트웨어가 관리하는 모든것인데요. 예를 들어 문서, 그림,DB,이미지, 동영상, 해당 소프트웨어 자체 등 이라고 말할 수 있습니다.
그렇기에 자원의 상태를 주고 받는 다는 것은 데이터를 주고 받는다라고 말할 수 있습니다.

그렇기에 데이터가 요청되어지는 시점에서 자원은 정보를 전달합니다. JSON 혹은 XML을 통해 데이터를 주고 받는 것이 일반적입니다.

REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일 입니다. 네트워크 상에서 Client와 Server 사이의 통신 방식 중 하나입니다.
표현이 states code

json 데이터 형식
JavaScript Object Notation의 약자로 '자바 스크립트 객체 표기법 이라고 말할 수 있습니다.
데이터를 쉽게 교환하고 저장하기 위해 텍스트 기반의 데이터 교환의 표준이라고 할 수 있습니다.

구조를 보면 자바스크립트 객체 표기법에 따른 구조로 구성할 수 있는데요. 이름과 값의 쌍으로 key: value 형식으로 구성, 중괄호로 감싸 표현할 수 있습니다. Key 와 value 사이에는 콜론이 들어갑니다.

여러 데이터를 나열할 경우 쉼표로 나열할 수 있습니다.

객체는 중괄호로 묶어서 표현하고 배열은 대괄호로 묶어서 표현합니다.

JSON에서 제공하는 기본 데이터 타입은
1. 숫자
2. 문자열
3. 불리언
4. 객체
5. 배열
6. Null

이 있습니다.

JSON을 key가 없는 배열 형태로 나타내여 인덱스별로 나누어 저장하고 접근한다. 예를 들어 [{ name : value, name : value …}, { name : value, name : value …}] 이런 형태로 들어갈 수 있습니다.

profile
개발새발자

0개의 댓글