RESTful API モデリング言語( RAML ) は、静的API (ただし REST API ではない)を記述するためのYAMLベースの言語です。 [ 2 ]これは、Richardson 成熟度モデルのレベル 2 の API を記述するために必要なすべての情報を提供します。RAML は RESTful API を念頭に置いて設計されていますが、REST のすべての制約に従う API (特にHATEOASに従う API を記述することはできません) を記述することはできません。RAML は再利用を促進し、発見とパターンの共有を可能にし、メリットに基づくベスト プラクティスの出現を目指しています。[ 3 ]
RAMLは2013年に初めて提案されました。最初のRAML仕様はUri Sarid、Emiliano Lesende、Santiago Vacas、Damian Martinezによって作成され、MuleSoft、AngularJS、Intuit、Box、PayPal、Programmable Web、API Web Science、Kin Lane、SOA Software、Ciscoなどのテクノロジーリーダーからの支持を得ました。[ 4 ]開発はRAMLワーキンググループによって管理されています。[ 5 ]現在のワーキンググループの署名者には、 MuleSoft (Uri Sarid、CTO)、 AngularJS (Misko Hevery、プロジェクト創設者)、Intuit (Ivan Lazarov、チーフエンタープライズアーキテクト)、Airware (Peter Rexer、製品ディレクター - 開発者プラットフォーム)、Programmable Web and API Science (John Musser、創設者)、SOA Software (Tony Gullotta、開発ディレクター)、Cisco (Jaideep Subedar、製品管理シニアマネージャー - アプリケーション統合ソリューショングループ)、VMware (Kevin Duffey、シニアMTSエンジニア)、Akamai Technologies (Rob Daigneau、AkamaiのOPEN APIプラットフォームのアーキテクチャディレクター)、Restlet (Jerome Louvel、CTO兼創設者) の技術リーダーが含まれています。RAMLはMuleSoftの商標です。[ 6 ]
既存のAPIの中で、RESTful APIとして分類される厳密な基準を満たすものはごくわずかです。そのため、2010年代のほとんどのAPIイニシアチブと同様に、RAMLは当初、ハイパーメディアである必要のないリソース、メソッド、パラメータ、レスポンスボディといったAPIの基本要素に焦点を当ててきました。技術と市場の進化が許せば、より厳密なRESTful APIへと移行していく計画があります。
RAMLが独自のベンダー言語から脱却し、より広範なAPIコミュニティにとって興味深いものとなった理由はいくつかあります。[ 7 ]
Linux Foundationの後援のもと、HTTP API の記述を標準化するためにOpen API Initiativeという新しい組織が2015 年に設立されました。SmartBear 、Google、IBM、Microsoftなど多数の企業が創設メンバーでした。[ 11 ] [ 12 ] SmartBear は Swagger 仕様をこの新しいグループに寄贈しました。RAML と API Blueprint もこのグループで検討されています。[ 13 ] [ 14 ]
これはRAMLファイルの例です。YAMLと同様に、インデントによってネスト構造が示されます。
#%RAML 0.8タイトル:ワールドミュージックAPIBaseUri : http://example.api.com/{バージョン}バージョン:v1特徴:-ページング済み:クエリパラメータ:ページ:説明:返されるページ数タイプ:数値-セキュア: !include http://raml-example.com/secured.yml/曲:: [ページング済み、セキュリティ保護済み]得る:クエリパラメータ:ジャンル:説明:ジャンル別に曲を絞り込む役職:/{songId} :得る:応答:200 :体:application/json :スキーマ:|{ "$schema": "http://json-schema.org/schema","type": "object"「説明」:「正典的な歌」「プロパティ」: {"title": { "type": "string" },"アーティスト": { "タイプ": "文字列" }},必須: [ "タイトル", "アーティスト" ]}application/xml :消去:説明:|この方法では**個々の曲**が**削除されます**。主なポイント:
さらに、 APIMATICを使用すれば、RAML仕様をOpenAPIまたはAPI Blueprintに変換できるため、より多くのAPIゲートウェイを利用できるようになります。