RAMLは、APIライフサイクル管理の効率を高めたり、APIの標準化を目指す開発者にとって強力なツールとなる。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
APIの開発は複雑でコストがかかる可能性があり、頻繁に更新されることからドキュメントを整備するのも難しい。APIの設計、開発、ドキュメントの整備、管理にまつわる課題と効率さの問題に対処するアプローチが、RESTful API Modeling Language(RAML:RESTful APIモデリング言語)だ。
RAMLコードを使えば、開発者はAPIの動作を説明する仕様を策定してからそのAPIをデプロイするまでのAPIライフサイクルを管理することができる。
RAMLは、RESTful APIを記述することを目的とするオープンソースの記述言語だ。2013年、米国のIT自動化および統合ベンダーであるMuleSoftを中心とする数社の企業によって作成されたRAMLはAPIの開発に大きな役割を果たしてきた。2018年、MuleSoftはSalesforceによって買収され、RAMLの商標はSalesforceが所有している。
RAMLはYAML(YAML Ain't Markup Language)に基づいている。YAMLは、「Kubernetes」にデプロイされるようなワークロードをサポートするための構成ファイルの記述によく使用されるデータシリアライズ言語だ。YAMLを知っていれば、RAMLコードには見覚えがあるはずだ。ただし、YAMLではさまざまな構成を記述できるのに対し、RAMLはAPIの記述に特化して設計されている点が大きく異なる。
RAMLの仕様言語としての使いやすさは、APIを記述する柔軟性だけでなく、その記述の一貫性にもある。RAMLで提供される構造によって標準化が促されるため、開発者はAPIの機能をマシンにも人間にも分かりやすく、読みやすい形式でまとめたコードを生成できる。
開発者やアーキテクトは、次の目的においてRAMLを使用できる。
APIの機能を記述する方法は多岐にわたるため、APIの仕組みの説明に広い範囲で矛盾が生じたり、効果的な説明ではなかったりすることがある。そうした状況を減らすためにRAMLが導入されている。例えば、APIはさまざまなタイプのクエリを受け取り、異なるMIMEタイプのデータをフォーマットし、応答コードを生成する。この多様性により、あるAPIでは機能する記述形式が、別のAPIでは機能しない可能性がある。
APIは一様なものでないため、開発者はAPIのドキュメントを作成する際、機能をありきたりの表現で説明しなくてはならないことが多い。つまり、開発者はマシンコードではなく、自然言語でAPIのドキュメントを作成することになる。この種のAPIドキュメントの作成には時間がかかり、構造に一貫性がない。そのため、ドキュメントをプログラムで処理するのは難しい。
こうした課題に対処するため、RAMLはREST APIに存在する可能性のある全ての属性を予測し、コードを使って各属性を定義する方法を提供する。RAMLを使えば、従来のようなドキュメントを作成せずに、一貫性のある表現でAPIを説明できる。
RAMLはAPIの作成と管理を必要とする開発者にとっては強力なツールだが、幾つか制限もある。
RAMLを最大限に活用するためのヒントとベストプラクティスを幾つか紹介する。
Copyright © ITmedia, Inc. All Rights Reserved.