BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース MuleSoftがRESTful APIを設計するRAMLツールをリリース

MuleSoftがRESTful APIを設計するRAMLツールをリリース

ブックマーク

原文(投稿日:2013/10/23)へのリンク

MuleSoftが3つのRAMLベースのツールをリリースした。RESTful APIを設計し、評価し、テストするためのツールだ。

RAMLはRESTful API Modeling Languageという意味だ。人間が読むことができ、マシンが解釈できる言語でAPIを定義し、ドキュメント化するのに使われる。RAMLはYAMLをベースにしており、バージョン1.2に準拠している。RESTful APIの設計を支援し、APIパターンの再利用を促進し、標準とグッドプラクティスに従うことでより高品質なAPIを作成することを支援する。

MuleSoftがリリースしたウェブベースのRAMLツールは、

API Designer: APIの仕様を作成し共有するためのエディタ。どんなエレメントが使えるかを示し、エディタを使って作成したRAMLドキュメントのエラーを検出する。次の例は、getメソッドを持つbooks APIだ。getメソッドは同一の著者の書籍をすべて返す。また{booksId}のセクションには特定の書籍を取得し、書籍のコレクションから特定の書籍を除外するdeleteメソッドがある。

このコードからわかるように、APIの定義はより複雑なリソースを定義するのに利用されるスキーマを使う。エディタの一番下には、メソッド、パラメータ、リソース、その他のエレメントが表示されている。

API Console:APIが作られたときに、そのAPIを視覚的にわかるように表示し評価し、ドキュメントの構造とパターンをアウトラインする。下記は上述のデモ用のAPIでコンソールを使った場合を示している。API呼び出しのテストに便利なbooksセクションを含んでいる。

API Notebook: APIをテストするためのJavaScriptコンソール。コンソール単独でも、他のAPIとマッシュアップして使うこともできる。RAMLで記述したAPI向けのモックアップのクライアントを生成するのに利用できる。

RAMLの開発はワーキンググループによって管理されている。グループのメンバには、MuleSoft IncのCTOであるUri Sarid氏、IntuitのチーフエンタープライズアーキテクトであるIvan Lazarov氏、PayPalのユーザインターフェイスエンジニアリング部門のディレクタであるBill Scott氏、AngularJS ProjectのファウンダであるMiško Hevery氏、Programmable Web & API ScienceのファウンダであるJohn Musser氏、BoxのプロダクトマネージャであるPeter Rexer氏、アメリカ合衆国退役軍人省でPresidential Innovation Fellowを務めるKin Lane氏が含まれている。Sarid氏はこのワーキンググループや計画についてInfoQに語った。

RAMLはまだ初期段階です。私たちは、過剰なガバナンスによって身動きが取れなくなることがないようにしながら、RAMLが進化して現在のAPI設計と記述の急を要するニーズを確実に満たすようにしたいと思っています。そうするために、APIに大きな価値を置く企業から同じ考えを持った人々が集まりワーキンググループを形成し、コミュニティからのインプットを得ながらRAMLを推進していくつもりです。グループのメンバはraml.orgのサイトで確認できます。今後は、メンバを調整しながら、グループがフレッシュで活動的であり続けるようにし、さまざまな見地から利点を得られるほどの大きく、素早く、目的に注力しやすい小ささを維持した組織でありたいと思っています。また、コミュニティを招待して、実世界と現実的な関心事、そして長期的な戦略的ゴールに基いたオープンで精力的な議論をするつもりです。

RAMLの未来については、

RAMLはすでに現実のRESTful APIの提供者と開発者が直面している問題の多くに対処していると思います。しかし、すべての問題には対処できていません。たとえば、要求されたフィールドのような入力パラメータとレスポンスボディ内のフィールドのような出力データの依存関係を捕らえることはできていません。このようなことをきれいで強力で直感的な方法で実現するのがRAMLの設計の目的のひとつです。また現時点では、JSONベースのAPIは対応できていません。単純にボディの表現をJSONスキーマで文字列化しているだけです。JSONベースのAPIはXMLスキーマの普及を獲得していません。また、RAMLコミュニティのニーズを満たさないかもしれません。そして、私たちに前に迫るより大きな問題はREST設計の制約であり、とくにハイパーメディアです。もし、RAMLを純粋なRESTful APIだけに制限したら、1)既存のほとんどのAPIでは利用できなくなってしまい、2)現在使われているほとんどのAPIの方式でも使えなくなるでしょう。私たちはリソース、メソッド、パラメータ、ハイパーメディアを必要としないボディというREST APIの基本から出発して、そこから進化していく予定です。

RAMLは現在バージョン0.8。仕様の全体はGitHubのhttps://github.com/raml-org/raml-specで確認できる。また、CoffeeScriptで書かれたRAMLパーサも利用できる。

この記事に星をつける

おすすめ度
スタイル

BT