RESTful API Description 언어 개요

Overview of RESTful API Description Languages

RESTful(대표적 상태 전송) API(응용프로그램 인터페이스) DLs(설명 언어)는 인간에게 유용한 RESTful API의 구조화된 설명을 제공하도록 설계된 공식 언어다.API Description Language를 IDL(Interface Description Language)이라고도 한다.구조화된 설명은 인간 프로그래머를 위한 문서 작성에 사용될 수 있다. 동일한 도구에 의해 생성된 모든 문서는 동일한 형식 규칙을 따르므로 자유형 문서보다 읽기 쉬울 수 있다.또한 설명 언어는 일반적으로 도서관과 같은 다양한 소프트웨어 아티팩트의 자동생성이 다양한 프로그래밍 언어에서 API에 접근할 수 있을 정도로 정밀하며, 프로그래머로부터 수동으로 생성해야 하는 부담을 덜어준다.

역사

이전의 두 가지 주요 설명 언어가 있다: WSDL2.0(Web Services Description Language)과 WADL(Web Application Description Language)이다.둘 중 어느 것도 RESTful API를 기술하는데 업계에서 널리 채택되지 않고 있는데, 이는 양쪽 모두에 대한 인간 가독성이 나쁘고 WADL이 실제로 RESTful API를 완전히 기술할 수 없다는 점을 들 수 있다.[1]

대안

하이퍼텍스트 기반 API

RESTful API를 구축하기 위한 대안적 접근방식은 HYTOAS(Hypermedia as the Engine of Application State)라는 약어로 알려져 있다.이 접근방식에서 클라이언트 소프트웨어는 설명서를 통해 공유되는 정적 인터페이스 설명에 기록되지 않는다.대신 클라이언트에 진입점 세트가 주어지고 API는 이러한 엔드포인트와의 상호작용을 통해 동적으로 발견된다.아토아스는 로이 필딩의 박사학위 논문인 건축양식과 네트워크 기반 소프트웨어 아키텍처 설계에서 소개되었다.아토아스는 RPC 메커니즘과 구별되는 RESTful API의 원래 비전이었다.[2]

RESTful API DL 목록

RESTful API DL 비교

RESTful API DLs를 둘러싼 커뮤니티가 활발히 활동하고 있으며, 여전히 판도가 변화하고 있다.아카나의 프레젠테이션에 따르면 이 분야에서 가장 활발한 프로젝트는 OpenAPI, RAML, API Blueprint라고 한다.[1]

스폰서 초기 커밋 최신 안정 릴리즈 안정출고일자 소프트웨어 라이선스[3] 포맷 오픈 소스 코드 생성(클라이언트) 코드 생성(서버)
뮬소프트 2013년 9월 1.0 2016년 5월 16일 아파치 2.0 YAML
오픈API OAI(Open API Initiative) 2011년 7월 3.0 2021년 2월 아파치 2.0 JSON 또는 YAML

참조

  1. ^ a b "API Description Languages". 12 August 2014.
  2. ^ Fielding, Roy. "REST APIs must be hypertext-driven". Retrieved 4 November 2015.
  3. ^ 여기서 라이선스는 요약본이며, 라이선스의 완전한 설명으로 간주되지 않는다.일부 패키지는 다른 라이센스에 따라 라이브러리를 사용할 수 있다.

외부 링크