RAML(소프트웨어)

RAML (software)
파일 이름 확장명
.raml
인터넷 미디어 유형
응용 프로그램/램블+스크롤[n 1]
개발자RAML 작업 그룹
최신 릴리즈
1.0
2016년 5월 16일 (2016-05-16)[1]
연장 위치YAML
표준github.com/raml-org/raml-spec/blob/master/versions/raml-10/raml-10.md/
웹사이트raml.org

RESTful API Modeling Language(RAML)는 RESTful API를 설명하기 위한 YAML 기반 언어다.[2] 그것은 RESTful 또는 실질적으로 RESTful API를 설명하는데 필요한 모든 정보를 제공한다. RESTful API를 염두에 두고 설계되었지만, RAML은 REST의 모든 제약을 준수하지 않는 API를 기술할 수 있다("실용적으로 RESTful"이라고 기술한다). 그것은 재사용을 장려하고, 발견과 패턴 공유를 가능하게 하며, 모범 사례의 성과에 기반한 출현을 목표로 한다.[3]

역사

RAML은 2013년에 처음 제안되었다. 초기 RAML 규격은 Uri Sarid, Emiliano Lesende, Santia Vacas, Damian Martinez가 작성했으며 MuleSoft, AngulJS, Intuit, Box, PayPal, Programmable Web and API Web Science, Kin Lane, SOA Soft, Cisco와 같은 기술 선도 업체들로부터 지지를 얻었다.[4] 개발은 RAML 작업 그룹에 의해 관리된다.[5] The current workgroup signatories include technology leaders from MuleSoft (Uri Sarid, CTO), AngularJS (Misko Hevery, Project Founder), Intuit (Ivan Lazarov, Chief Enterprise Architect), Airware (Peter Rexer, Director of Product - Developer Platform), Programmable Web and API Science (John Musser, Founder), SOA Software (Tony Gullotta, Director of Development), Cisco (Jaideep Subedar, Senior Manager, Product Management - Application Integration Solutions Group), VMware (Kevin Duffey, Senior MTS Engineer), Akamai Technologies (Rob Daigneau, Director of Architecture for Akamai's OPEN API Platform) and Restlet (Jerome Louvel, CTO and Founder). RAML은 MuleSoft의 상표다.[6]

RESTful API로 분류되는 정확한 기준을 충족하는 기존 API는 거의 없다. 결과적으로, 2010년대 대부분의 API 이니셔티브와 마찬가지로, RAML은 초기에는 하이퍼미디어일 필요가 없는 자원, 방법, 매개변수, 대응 주체를 포함한 실질적으로 RESTful API의 기본에 초점을 맞추었다. 기술과 시장의 진화가 허락함에 따라 보다 엄격하게 RESTful API로 나아갈 계획이 있다.

RAML이 독점적인 벤더 언어에서 벗어나 보다 광범위한 API 커뮤니티에 흥미로운 것으로 입증된 이유는 다음과 같다.[7]

  • RAML은 공통 언어에 대한 도구 및 파서와 함께 오픈 소스가 제공되었다. RAML 개발은 API 및 UX 실무자 운영위원회가 총괄하며, RAML을[8] 중심으로 제3자 툴 생태계가 새롭게 개발되고 있다.
  • MuleSoft는 원래 Swager(현재의 OpenAPI 사양)를 사용하기 시작했지만 처음부터 API를 설계하기 위한 것이 아니라 기존 API를 문서화하는 데 가장 적합하다고 판단했다. RAML은 간결하고 인간 중심적인 언어로[9] 초기 API 설계를 지원해야 하는 필요성 때문에 발전했다.
  • API 설명은 종종 장황하고 반복적이기 때문에 이해와 사용이 어려울 수 있으며 API의 채택이 느릴 수 있다. RAML은 교차 컷팅 문제를 해결하는[10] 구조화된 파일과 상속을 지원하는 언어 기능을 도입했다.

리눅스 재단의 후원으로 2015년에 RESTful APIs의 설명을 표준화하기 위해 Open API Initiative라고 불리는 새로운 조직이 설립되었다. 스마트베어, 구글, IBM, 마이크로소프트를 포함한 많은 회사들이 창립 멤버였다.[11][12] SmartBear는 새 그룹에 스웨거 사양을 기증했다. RAML과 API Blueprint도 그룹 차원에서 검토 중이다.[13][14]

이것은 RAML 파일의 예다. YAML과 마찬가지로, 들여쓰기는 둥지를 보여준다.

  #%RAML 0.8    칭호를 붙이다: 월드 뮤직 API   베이스우리: http://example.api.com/{version}   버전: v1   특성들:     - 호출했다:         쿼리파라미터:           페이지:             설명: 반환할 페이지 수             타자를 치다: 번호를 붙이다     - 담보된: !include http://raml-example.com/secured.yml   /message:     이다: [ 호출했다, 담보된 ]     얻다:       쿼리파라미터:         장르.:           설명: 장르별로 곡들을 필터링하다     우편으로 부치다:     /{songId}:       얻다:         응답:           200:             보디:               애플리케이션/json:                 스키마를 타다:                     { "$$": "http://json-schema.org/schema",                     "유형": "객체",                     "설명": "정규적인 노래"                     "properties": {                       "title": { "형식": "string" },                       "cring": { "type": "string" }                     },                     "required": [ "title", "artist" ]                   }               application/xml:       삭제하다:         설명:             이 방법은 ** 개별 노래 *삭제*** 

몇 가지 주요 사항:

  • 7, 12행: 여러 장소에서 호출되는 특성 정의
  • 줄 12: 포함 파일
  • 선 13, 14: "일반" 데이터 유형 "/일반" 정의, 이전에 정의된 특성 사용
  • 라인 15, 19, 37: HTTP 메서드 정의
  • 25, 36: MIME 유형.

RAML을 지원하는 API 게이트웨이

또한 RAML 규격을 개방으로 변환할 수 있다.APIMATIC을 사용하는 API 또는 API Blueprint를 사용하면 추가 API 게이트웨이를 사용할 수 있다.

참고 항목

대체 RESTFL 모델링 언어

메모들

  1. ^ IANA에 등록되지 않음

참조

  1. ^ "Announcing RAML 1.0 GA RAML Blog". Retrieved 11 August 2016.
  2. ^ "RAML 1.0". Retrieved 26 May 2017.
  3. ^ "RAML — RESTful API Modeling Language". Retrieved 15 July 2014.
  4. ^ "RAML or OpenAPI - How About Both? - DZone Integration". dzone.com. Retrieved 2017-10-04.
  5. ^ "RAML Workgroup".
  6. ^ "RAML - Trademark Details". 26 May 2017.
  7. ^ "Why RAML is More than Another Proprietary Specification". 11 April 2014.
  8. ^ "API Design Tooling From RAML". 3 March 2014.
  9. ^ "Anypoint for APIs: An Interview with Uri Sarid". 25 February 2014.
  10. ^ "An Example of API Design using RAML". 11 April 2014.
  11. ^ "SmartBear, Linux Foundation launch Open API Initiative to Evolve Swagger". ProgrammableWeb. 2015-11-10. Retrieved 2016-04-21.
  12. ^ "New Collaborative Project to Extend Swagger Specification for Building Connected Applications and Services". www.linuxfoundation.org. Archived from the original on 2016-04-27. Retrieved 2016-04-22.
  13. ^ Montcheuil, Yves de. "In 2016, the need for an API meta-language will crystallize". InfoWorld. Retrieved 2016-04-25.
  14. ^ "Amazon API Gateway Now Supports Swagger Definition Import". InfoQ. Retrieved 2016-04-25.

외부 링크